gpt4 book ai didi

maven-2 - 使用 Maven,如何防止 Maven 过滤某些属性但允许其他属性?

转载 作者:行者123 更新时间:2023-12-02 11:04:45 26 4
gpt4 key购买 nike

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

build.xml 文件中有一个我需要过滤的属性,名为 build.date,但还有其他属性我不想过滤,例如 ${basedir},因为它由 ant 安装程序使用但被 Maven 的 basedir 变量取代。因此,我需要以某种方式告诉 Maven 过滤 ${build.date},而不是 ${basedir}。

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

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

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

谢谢

B.J.

最佳答案

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

  • 不要使用 Maven 属性,如 ${basedir}在你的build.xml (如果可能的话)
  • 不要使用 Maven 过滤,而是使用 Maven Antrun 插件替换 ${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>

关于maven-2 - 使用 Maven,如何防止 Maven 过滤某些属性但允许其他属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2789563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com