如何用Maven包装Ant构建?
我们为我们的大型产品使用maven。 我们所有的工件都使用maven部署目标部署到共享的archiva存储库。 我现在正在整合一个有蚂蚁构建的第三方产品。 我知道如何使用antrun插件从maven调用ant目标,但我不知道如何在这种情况下设置pom。 我不希望Maven实际生成一个工件,但我确实希望它能够在Maven部署目标运行时取出由Ant构建的工件。
我打算让pom与build.xml相邻。 pom将使用包目标中的antrun插件在适当的时间调用ant目标来构建.war工件。
问题:
a)我正在创建一个.war文件,但它是通过ant创建的,而不是Maven,所以在pom中有一个战争包装类型是没有意义的。 我的包装类型应该是什么?
b)如何让maven从我的ant输出目录中取出工件以实现部署目标?
c)如果对A和B没有好的答案,那么是否有ant任务复制maven部署功能以将我的.war工件存入共享存储库?
你可以使用maven-antrun-plugin来调用ant构建。 然后使用build-helper-maven-plugin将ant生成的jar附加到项目中。 附带的工件将与pom一起安装/部署。
如果您使用包装pom
指定项目,Maven将不会与ant构建发生冲突。
在下面的例子中,假设ant build.xml位于src / main / ant中,有一个compile
目标,并输出到ant-output.jar
。
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>process-resources</phase>
<configuration>
<tasks>
<ant antfile="src/main/ant/build.xml" target="compile"/>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<id>add-jar</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>${project.build.directory}/ant-output.jar</file>
<type>jar</type>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
实际上,您可以使用多个蚂蚁运行目标来为Maven包装一个ANT项目,就像我在另一个问题中写的一样。 假设你现有的ant项目有干净的构建任务,这可能是一个包装项目的有用方式,所以你可以使用maven目标并将其映射到现有的ant代码。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<id>install-library</id>
<phase>install</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<groupId>x.x</groupId>
<artifactId>ant-out-atifacts</artifactId>
<version>${project.version}</version>
<file>ant-output.jar</file>
<packaging>zip</packaging>
</configuration>
</execution>
</executions>
</plugin>
链接地址: http://www.djcxy.com/p/44315.html
上一篇: How to wrap an Ant build with Maven?
下一篇: How to Toggle First Responders Between Text Fields and Views