Форкирование Java с использованием плагина Exec Maven без использования цели `exec`
Из документации:
exec:exec
выполнять программы и программы Java в отдельном процессе.exec:java
выполнять программы Java на одной и той же виртуальной машине.
Я хочу раскошелиться на Java-программу. Я уже получил это работает в exec:java
но это не вилка. Таким образом, очевидным шагом является изменение цели на exec
, Проблема в том, синтаксис для exec
довольно сильно отличается от синтаксиса java
, У него нет тегов типа includeProjectDependencies
, includePluginDependencies
и т. д. Есть ли плагин, который я могу использовать, который подобен #1 в том смысле, что он разветвляется, но имеет удобный синтаксис, такой как #2? ИМО, № 2 должен просто иметь <fork>true</fork>
конфигурации.
2 ответа
Также возможно порождать Java-процесс из Maven с помощью maven-antrun-plugin. Этот плагин экспортирует несколько путей к классам, охватывающих области компиляции / времени выполнения / тестирования, а также зависимости плагина.
Таким образом, выполнение класса в отдельном процессе с зависимостями компиляции и плагина будет выглядеть так:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<java classname="com.example.MainClass" fork="true">
<classpath>
<path refid="maven.compile.classpath"/>
<path refid="maven.plugin.classpath"/>
</classpath>
</java>
</target>
</configuration>
</plugin>
Это выполняется с mvn antrun:run
вместо exec:exec
,
Я думаю, что вы можете придерживаться exec:exec, используя такую конфигурацию, если хотите указать путь к классу проекта для используемого вами Java-процесса:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
<executable>java</executable>
<longClasspath>true</longClasspath>
<arguments>
<argument>-XX:MaxPermSize=128M</argument>
<argument>-Xmx1024M</argument>
<argument>-Xdebug</argument>
<argument>-Xrunjdwp:transport=dt_socket,address=8888,server=y,suspend=n</argument>
<argument>-classpath</argument>
<classpath/>
</arguments>
</configuration>
</plugin>
Смотрите также страницу использования плагина