我试图迁移一个由Ant构建到Mave2的Java应用程序。其中,构建执行以下操作:
-
运行JavaDoc文档以查找稍后被外部化的注释的Java文件作为Web服务
-
为步骤3编译一小部分代码
-
在步骤2中编译的代码上运行axis java2wsdl
-
使用WSDL2Java在WSDL文件中从步骤3生成Java代码
-
编译整个代码
当我试图使过程“独树一帜”时,我可以一次完成每个任务,但未能按顺序完成所有任务。
为了演示我的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>
主要的问题是我无法控制事情的顺序,在这里它显然很重要,因为每一步的输出都是下一步的输入。