У меня есть проект, сконфигурированный для сборки и запуска с Maven. Проект зависит от специфичных для платформы собственных библиотек, и я использую найденную стратегию here для управления этими зависимостями.Использование Maven 'exec: exec' с аргументами
По существу, файлы .dll
или .so
для конкретной платформы упаковываются в банку и помещаются на сервер Maven с классификатором, идентифицирующим целевую платформу. Плагин maven-dependency затем распаковывает конкретную платформу платформы и копирует собственные библиотеки в целевую папку.
Обычно я использовал mvn exec:java
для запуска программы Java, но exec:java
запускает приложения в одной JVM как Maven, что мешает мне модифицировать путь к классам. Поскольку родственные зависимости должны быть добавлены к пути к классам, я вынужден вместо этого использовать mvn exec:exec
. Это отношение фрагмент П:
...
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<executable>java</executable>
<arguments>
<argument>-Djava.library.path=target/lib</argument>
<argument>-classpath</argument>
<classpath />
<argument>com.example.app.MainClass</argument>
</arguments>
</configuration>
</plugin>
...
Это прекрасно работает для конфигурации по умолчанию приложения, но я хочу, чтобы иметь возможность задать некоторые необязательные параметры в командной строке. В идеале я хотел бы сделать что-то вроде этого:
mvn exec:exec -Dexec.args="-a <an argument> -b <another argument>"
К сожалению, указав переменную exec.args
перезаписываю аргументы я имею в П (которые необходимы для настройки и запуска классов приложения). Есть ли способ обойти это? Каков наилучший способ указать некоторые необязательные аргументы в командной строке, не перезаписывая то, что у меня есть в pom?
И как ese аргументы могут быть доступны в Java-коде, я имею в виду эту строку: 'String [] args'? – zygimantus
@zygimantus вы хотите 'mvn exec: java -Dexec.mainClass =" path.to.your.class "-Dexec.args =" arg1 arg2 "', который выходит за рамки исходного вопроса. – dr0i