Как установить параметры виртуальной машины и параметры программы с помощью exec-maven-plugin? - PullRequest
0 голосов
/ 09 мая 2018

Я использую exec-maven-plugin для запуска Java-приложения. Мне нужно передать как параметры JVM, так и аргументы программы. Я устанавливаю параметры JVM следующим образом:

<artifactId>exec-maven-plugin</artifactId>
       <version>1.6.0</version>
           <executions>
               <execution>
                   <id>MyId</id>
                   <goals>
                       <goal>java</goal>
                   </goals>
                   <configuration>
                       <mainClass>MyClass</mainClass>
                       <arguments>
                           <argument>-XX:+UseG1GC</argument>
                           <argument>-Xms2G</argument>
                           <argument>-Xmx2G</argument>                                    
                       </arguments>
                   </configuration>
               </execution>

...

и запустите программу:

mvn exec:java@MyId  -Dexec.args="my params"

Однако похоже, что аргументы, заданные в pom.xml, не используются и перезаписываются -Dexec.args, а раздел используется только как программные аргументы.

Пытался добавить в аргументы (как показано в этой статье ), но натолкнулся на

Unable to parse configuration of mojo org.codehaus.mojo:exec-maven-plugin:1.6.0:java for parameter arguments: Cannot store value into array:
ArrayStoreException -> [Help 1]

На jboss.org обнаружена похожая нерешенная проблема .

Есть предложения?

1 Ответ

0 голосов
/ 11 мая 2018

Нашел ответ на мой вопрос на странице плагина - в самом конце.

Эта цель поможет вам запустить программу на Java на той же виртуальной машине, что и Maven.

Цель очень велика, чтобы попытаться имитировать работу ВМ, но есть некоторые небольшие тонкие различия. Сегодня все отличия исходить из того, как цель связана с управлением потоками.

Примечание: цель java не порождает новый процесс. Любая виртуальная машина опция, которую вы хотите передать исполняемому классу, должна быть передана виртуальная машина Maven, использующая переменную среды MAVEN_OPTS.

Это не работает для меня, так что переключение в режим mvn exec: exec. работает для параметров JVM там.

Нашел решение здесь: Использование Maven 'exec: exec' с аргументами

...