问题是我正在尝试构建一个在其资源中包含build.xml文件的项目.基本上,我将我的项目打包为Maven2的jar,然后使用ant安装程序来安装我的项目.
我需要过滤build.xml文件中的一个名为build.date的属性,但还有其他一些我不想过滤的属性,比如$ {basedir},因为它被ant安装程序使用但被替换由Maven的basedir变量.所以,我需要以某种方式告诉Maven过滤$ {build.date},而不是$ {basedir}.
我尝试创建一个属性文件作为过滤器,其中"basedir = $ {basedir}"作为其中一个属性,但我收到以下错误:
解析表达式:'$ {basedir}':检测到以下递归表达式循环:[basedir]
任何建议将不胜感激.
谢谢,
BJ
据我所知,这是不可能的,你不能阻止maven过滤给定的属性.所以要么:
${basedir}你一样使用Maven属性build.xml(如果可能的话)${build.date} ,只有这个属性(见这个答案)更改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>
Run Code Online (Sandbox Code Playgroud)