如何在“复制webapp资源”之后和封装阶段“构建战争”步骤之前调用ant任务来处理webapp文件?

时间:2011-05-12 08:41:04

标签: maven maven-war-plugin maven-antrun-plugin

我正在从蚂蚁迁移到maven。但是,我有一个流程Web资源的自定义构建功能,我不想适应maven(成本非常高)所以我使用的是ant run插件。

我想处理一些调用ant任务的资源文件。这需要 在“复制webapp资源”步骤之后和阶段包中的“构建战争”步骤之前发生。

当我运行我的ant任务时,阶段为“package”

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.6</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <configuration>
                        <tasks>
                            <ant antfile="${basedir}/build-resources.xml">
                                 <property name="runtime-classpath" refid="maven.runtime.classpath"/>
                            </ant>
                        </tasks>
                    </configuration>
                </execution>
            </executions>
        </plugin>   

我可以完成对target/myapp-webapp文件夹下的文件的更改。但是,自从 myapp-webapp.war是在运行ant任务之前构建的,但这些更改不是 成为战争档案的一部分。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:3)

看看maven-lifecycle!如果您将ant-task绑定到 prepare-package 阶段或 process-resources 阶段,您应该能够完成任务。

如果您在执行中添加了ID,则可以在控制台上更轻松地进行操作:

...
<executions>
 <execution>
  <id>my-ant-processed-files</id>
  <phase>prepare-package</phase>
  ...

您对哪些文件进行了哪些处理?