Как выполнять упорядоченные задачи в сборке Maven2

StackOverflow https://stackoverflow.com/questions/2450266

Вопрос

Я пытаюсь перенести приложение Java, созданное Ant, на Maven2.Среди прочего при сборке выполните следующие операции:

  1. Запуск доклета Javadoc для поиска аннотированных файлов Java для последующего экстернализации в виде веб-сервисов.

  2. скомпилируйте небольшую часть кода для шага 3

  3. запустите Axis java2wsdl для скомпилированного кода из шага 2.

  4. создать код Java с помощью wsdl2java в файлах WSDL с шага 3.

  5. скомпилировать весь код

Пытаясь «усовершенствовать» процесс, я могу выполнить каждую задачу за раз, но не могу выполнить их все в указанном порядке.

Чтобы продемонстрировать мой помпон и не загружать вас подробностями, я покажу следующий фрагмент:

<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 :( И скрестите пальцы, чтобы не столкнуться с регрессом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top