如何在Maven2构建中执行有序任务

问题描述 投票:6回答:1

我正在尝试将Ant构建的Java应用程序迁移到Maven2。其中构建执行以下操作:

  1. 运行javadoc doclet以查找带注释的Java文件,以便稍后将其外部化为Web服务
  2. 编译第3步的一小部分代码
  3. 在步骤2的已编译代码上运行Axis java2wsdl
  4. 在步骤3的WSDL文件中使用wsdl2java生成Java代码
  5. 编译整个代码

当试图“整合”过程时,我可以一次完成每项任务,但却无法按顺序完成所有任务。

为了演示我的pom并且不向您提供详细信息,我将展示以下代码段:

<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>

主要问题是我无法控制事物的顺序,因此每个步骤输出都是下一步输入,这显然很重要。

plugins binding maven-2 phase
1个回答
6
投票

绑定到同一阶段的插件应该按照它们在POM中列出的顺序执行,但是......有一个关于此问题的公开问题(MNG-2258)。另外看看相关问题MNG-3719(特别注意this comment)。因为我不认为MNG-3719的“作弊”在你的情况下是可能的,我的建议是尝试使用Maven 2.0.8 :(并交叉你的手指不要面对任何回归。

© www.soinside.com 2019 - 2024. All rights reserved.