Много извинений, если это заканчивается тем, что я глупый вопрос, я немного из глубины моей души...
Это связано с предыдущим вопросом
Обновление exec-maven-plugin с 1.1.1 до 1.2 или 1.3.2
По сути, у меня есть приложение maven java, которое запускается из командной строки в Jenkins (или в командном окне для проверки). Он выполняет некоторую обработку, которая занимает около часа на главном сервере (2 дня на меньшей машине!). Он работает с exec-maven-plugin 1.1.1. Недавно я обновил некоторые зависимости и, как ни странно, теперь он зависает в конце обработки, где раньше этого не было. Я немного погуглил, и пока я не совсем понимаю, почему это кажется известной проблемой. Я попытался обновить модуль exec-maven-plugin до 1.3.2, и это не работает, о чем шла речь выше. На самом деле, я думаю, что меня отследили, и я думаю, мне нужно найти другой способ запустить код (?). Приведу меня к основному вопросу...
Ответ, который я видел чаще всего (я работаю в среде Windows), и кто-то прокомментировал это, чтобы заменить exec-maven-plugin на maven-antrun-plugin. Как ни странно, хотя основные примеры, которые я нашел в Интернете, на самом деле не показывают, как сделать гораздо больше, чем запустить команду echo. Если я правильно понимаю, мне нужно запустить команду Ant exec, чтобы запустить код из основного proc и, возможно, запустить другой скрипт, чтобы остановить основной поток при завершении (об этом я даже не понимаю). Я просто не могу понять, что я должен делать в скрипте. Должен ли я искать документацию Ant для разработки сборки файла build.xml (я предполагаю, что это не приложение для maven, и это похоже на обратный шаг), или я должен запускать некоторые команды dos для выполнения некоторых задач или некоторые из встроенных команд муравьев?
Просто повторить итерацию Я не ожидаю, что кто-нибудь напишет сценарий для меня (!), Но на данный момент я просто не понимаю, чего я пытаюсь достичь в сценарии, какой уровень команд я должен вводить это или как начать. Если бы кто-нибудь мог указать мне в правильном направлении или показать мне, указав на какую-то четкую документацию, я был бы очень благодарен.
Если я не был ясен, я запускаю приложение, используя
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1.1</version>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<mainClass>com.org.dc.dcClient</mainClass>
</configuration>
</execution>
Я думаю, что решение моей проблемы (Maven не получает контроль над кодовой конкуренцией) заключается в том, чтобы изменить это на что-то похожее
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<echo>Using Ant Run</echo>
<exec [script]"/>
</tasks>
</configuration>
</execution>
</executions>
благодаря
Если все, что вам нужно, это выполнить класс java, тогда добавление следующих строк вашему pom будет выполнять эту работу.
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase> <!-- a lifecycle phase --> </phase>
<configuration>
<target>
<java classname="test.Main">
<arg value="-h"/>
<classpath>
<pathelement location="dist/test.jar"/>
<pathelement path="${java.class.path}"/>
</classpath>
</java>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
Обратите внимание на часть между целевыми тегами. Вам нужно иметь дело с конфигурацией для classpath и т.д.