Maven 2 对于Maven,我如何防止Maven过滤某些属性而允许其他属性?

Maven 2 对于Maven,我如何防止Maven过滤某些属性而允许其他属性?,maven-2,ant,Maven 2,Ant,问题是我试图构建一个资源中包含build.xml文件的项目。基本上,我用Maven2将我的项目打包为一个jar,然后使用ant安装程序安装我的项目 build.xml文件中有一个名为build.date的属性需要过滤,但还有一些其他属性我不想过滤,比如${basedir},因为ant安装程序使用它,但被Maven的basedir变量替换。所以,我需要告诉Maven如何过滤${build.date},而不是${basedir} 我尝试将“basedir=${basedir}”作为属性之一创建一个属

问题是我试图构建一个资源中包含build.xml文件的项目。基本上,我用Maven2将我的项目打包为一个jar,然后使用ant安装程序安装我的项目

build.xml文件中有一个名为build.date的属性需要过滤,但还有一些其他属性我不想过滤,比如${basedir},因为ant安装程序使用它,但被Maven的basedir变量替换。所以,我需要告诉Maven如何过滤${build.date},而不是${basedir}

我尝试将“basedir=${basedir}”作为属性之一创建一个属性文件作为筛选器,但出现以下错误:

解析表达式:“${basedir}”:检测到以下递归表达式循环:[basedir]

如有任何建议,将不胜感激

谢谢


据我所知,这是不可能的,你不能阻止maven过滤给定的属性。因此,要么:

  • 不要在
    build.xml
    中使用像
    ${basedir}
    这样的Maven属性(如果可能的话)
  • 不要使用Maven筛选,而是使用Maven Antrun插件替换
    ${build.date}
    ,并且仅替换此属性(请参阅)
  • 更改资源插件的参数,并在
    build.xml
    中使用例如
    @build.date@
    而不是
    ${build.date}

    <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>
    
    
    org.apache.maven.plugins
    maven资源插件
    2.4.2
    假的
    @
    

再次感谢您的帮助。第三种解决方案是我选择的解决方案。我必须补充一点false@Benny啊,是的,忘了这一点(我已经相应地更新了我的答案)。@Benny顺便说一句,这通常是有意义的;)