代码之家  ›  专栏  ›  技术社区  ›  rperez

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

  •  6
  • rperez  · 技术社区  · 15 年前

    我试图迁移一个由Ant构建到Mave2的Java应用程序。其中,构建执行以下操作:

    1. 运行JavaDoc文档以查找稍后被外部化的注释的Java文件作为Web服务

    2. 为步骤3编译一小部分代码

    3. 在步骤2中编译的代码上运行axis java2wsdl

    4. 使用WSDL2Java在WSDL文件中从步骤3生成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>
    

    主要的问题是我无法控制事情的顺序,在这里它显然很重要,因为每一步的输出都是下一步的输入。

    1 回复  |  直到 6 年前
        1
  •  6
  •   Pascal Thivent    15 年前

    插件绑定到同一阶段 应该是 按照POM中列出的顺序执行,但…有一个悬而未决的问题( MNG-2258 )还可以看看相关的问题 MNG-3719 (特别注意 this comment )因为我不认为 MNG-3719型 在你的情况下是可能的,我的建议是尝试Maven2.0.8:(交叉你的手指不要面对任何回归。

    推荐文章