问题是我正在尝试构建一个在其资源中包含build.xml文件的项目。基本上,我将我的项目打包为Maven2的jar,然后使用ant installer来安装我的项目。
build.xml文件中有一个我需要过滤的属性,名为build.date,但还有其他一些我不想过滤的属性,比如$ {basedir},因为它被ant安装程序使用但是被Maven的basedir变量所取代。所以,我需要以某种方式告诉Maven过滤$ {build.date},而不是$ {basedir}。
我尝试使用“basedir = $ {basedir}”作为属性之一创建属性文件,但是我收到以下错误:
解析表达式:'$ {basedir}':检测到以下递归表达式循环:[basedir]
我们非常感谢任何建议。
谢谢,
B.J。
答案 0 :(得分:7)
据我所知,这是不可能的,你不能阻止maven过滤给定的属性。所以:
${basedir}
中使用build.xml
等Maven属性(如果可能的话)${build.date}
而只使用此属性(请参阅this answer)更改资源插件的delimiters
参数,并在@build.date@
${build.date}
代替build.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4.2</version>
<configuration>
<useDefaultDelimiters>false</useDefaultDelimiters>
<delimiters>
<delimiter>@</delimiter><!-- for Ant-like tokens style -->
</delimiters>
</configuration>
</plugin>