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

时间:2010-03-15 20:32:08

标签: plugins binding maven-2 phase

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

  1. 运行javadoc doclet以查找以后将作为Web服务外部化的带注释的Java文件

  2. 编译第3步的一小部分代码

  3. 对第2步的编译代码运行Axis java2wsdl

  4. 在第3步的WSDL文件中使用wsdl2java生成Java代码

  5. 编译整个代码

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

    为了展示我的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>
    

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

1 个答案:

答案 0 :(得分:6)

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

相关问题