我有一个大型的多模块maven项目。我想在编译阶段之后移动一些生成的文件,因此我将以下插件添加到父pom.xml
文件中:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>move-stuff</id>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
... lots of ant stuff here ...
</target>
</configuration>
</execution>
</executions>
</plugin>
这很有效,但target
元素之间有很多ant任务,它们应该正确地移动到一个ant build.xml
文件中。问题是我需要在插件中指定build.xml
文件的位置:
<configuration>
<ant antfile="build.xml"/>
</configuration>
但是无法以这样的方式指定此文件的位置,即每个子模块中的父pom.xml
和pom.xml
都可以加载它。例如,不能使用${project.basedir}/build.xml
因为它相对于每个模块而不是相对于顶级项目目录给出结果。同样,不能使用../build.xml
,因为它只适用于子模块而不适用于父模块。
有没有办法在maven-antrun-plugin
中指定一个适用于我项目中每个模块的antfile位置?或者我仍然坚持在pom.xml
文件中留下大量的蚂蚁代码?
答案 0 :(得分:0)
一种方法是使用C3
属性:
user.dir
当然,这仅在您从根项目触发构建时才有效。