Эта пример страницы из документации плагина Exec описывает то, что вы хотите, я думаю.
Если бы вы могли использовать цель exec:java
вместо exec:exec
, поиск JVM взятзаботиться о вас.Вы также можете добавить зависимости плагина или зависимости проекта, изменив параметры конфигурации плагина includeProjectDependencies
и includePluginDependencies
.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>exec-one</id>
<phase>verify</phase>
<configuration>
<includeProjectDependencies>false</includeProjectDependencies>
<includePluginDependencies>true</includePluginDependencies>
<executableDependency>
<groupId>GroupId of JarToInvoke</groupId>
<artifactId>JarToInvoke</artifactId>
</executableDependency>
<!-- Look up the main class from the manifest inside your dependency's JAR -->
<mainClass>com.example.Main</mainClass>
<arguments>
<!-- Add any arguments after your JAR here --->
</arguments>
</configuration>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>GroupId of JarToInvoke</groupId>
<artifactId>JarToInvoke</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
</plugin>
Единственным недостатком является то, что вам нужно явно указать основной класс вбаночка для запуска.Вы можете посмотреть это, открыв манифест в JAR-файле зависимости и прочитав атрибут Main-Class.
Если вам действительно нужно использовать exec:exec
, вы можете использовать Maven DependencyЦель copy-dependencies плагина - копировать зависимости из вашего локального репозитория в предопределенное место (например, ${project.build.directory}
/ exec-jars), а затем вы можете передать этот каталог в опции конфигурации workingDirectory
плагина exec.