Как выполнять упорядоченные задачи в сборке Maven2
Вопрос
Я пытаюсь перенести приложение Java, созданное Ant, на Maven2.Среди прочего при сборке выполните следующие операции:
Запуск доклета Javadoc для поиска аннотированных файлов Java для последующего экстернализации в виде веб-сервисов.
скомпилируйте небольшую часть кода для шага 3
запустите Axis java2wsdl для скомпилированного кода из шага 2.
создать код Java с помощью wsdl2java в файлах WSDL с шага 3.
скомпилировать весь код
Пытаясь «усовершенствовать» процесс, я могу выполнить каждую задачу за раз, но не могу выполнить их все в указанном порядке.
Чтобы продемонстрировать мой помпон и не загружать вас подробностями, я покажу следующий фрагмент:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.6.1</version>
<executions>
<execution>
<id>aggregate</id>
<phase>generate-sources</phase>
<goals>
<goal>aggregate</goal>
</goals>
<configuration>...</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<id>compileWSfiles</id>
<goals>
<goal>compile</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<includes>
<!-- include 3 source files -->
</includes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>axistools-maven-plugin</artifactId>
<version>1.3</version>
<dependencies>
<dependency>
<groupId>axis</groupId>
<artifactId>axis</artifactId>
<version>1.3</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>java2wsdl</id>
<phase>generate-sources</phase>
<goals>
<goal>java2wsdl</goal>
</goals>
<configuration>...</configuration>
</execution>
<execution>
<id>wsdl2java</id>
<phase>generate-sources</phase>
<goals>
<goal>wsdl2java</goal>
</goals>
<configuration>...</configuration>
</execution>
</executions>
</plugin>
</plugins>
Основная проблема заключается в том, что я не могу контролировать порядок вещей, и это, очевидно, важно здесь, поскольку каждый выходной шаг является следующим входным шагом.
Решение
Плагины, привязанные к одной фазе должно быть выполняются в том же порядке, в котором они перечислены в POM, но...по этому поводу есть открытый вопрос(МНГ-2258).Также ознакомьтесь с соответствующей проблемой МНГ-3719 (обратите особое внимание на этот комментарий).Так как я не думаю, что "обман" МНГ-3719 в вашем случае возможно, я предлагаю попробовать Maven 2.0.8 :( И скрестите пальцы, чтобы не столкнуться с регрессом.