3

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

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

当我运行我的 ant 任务时,阶段是“包”

        <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 任务之前构建的,因此这些更改不会成为该 war 文件的一部分。

有没有办法做到这一点?

4

1 回答 1

3

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

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

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

您对哪些文件进行了什么样的处理?

于 2011-05-12T21:23:24.513 回答