скрипт, используемый для замены exec-maven-plugin на maven-antrun-plugin

1

Много извинений, если это заканчивается тем, что я глупый вопрос, я немного из глубины моей души...

Это связано с предыдущим вопросом

Обновление 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>

благодаря

Теги:
maven

1 ответ

0
Лучший ответ

Если все, что вам нужно, это выполнить класс 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 и т.д.

  • 0
    Большое спасибо - нашел эту ссылку там, где следовало искать, пытаясь понять, что означает -h ... просто добавив, если кто-нибудь придет к этому вопросу ant.apache.org/manual/Tasks/java.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню