ant propertyfile task update property 删除属性文件中的所有注释

Posted

技术标签:

【中文标题】ant propertyfile task update property 删除属性文件中的所有注释【英文标题】:ant propertyfile task update property removes all comments from the property file 【发布时间】:2013-10-06 02:31:17 【问题描述】:

我在 CentOS 5.5 上运行 ant 版本 1.6.5。在加载属性文件之前,我使用了 ant propertyfile 任务(一个可选的 ant 任务)来更新属性文件中的一些属性。属性文件任务似乎是从文件中删除所有现有的 cmets,只留下属性键值对。

这是我在 build.xml 文件中的代码 sn-p:

<target name="version">
    <propertyfile file="$root.dir/build/cbo_version.properties" >
        <entry key="major_number" value="$major_number"/>
        <entry key="minor_number" value="$minor_number"/>
        <entry key="maintenance_number" value="$maintenance_number"/>
        <entry key="build_number" value="$build_number"/>
    </propertyfile>
</target>

这是我的属性文件中的一个 sn-p:

#
# This file was designed to contain basic information about a build/release such
# as its version, code label, etc. for the purpose of traceability.  
#
major_number=1
minor_number=0
maintenance_number=0
build_number=18

一旦我构建了我的应用程序,属性文件中所有以“#”为前缀的行都会被删除。我在 mac os x 10.8.4 和 ant 1.8.2 上尝试了相同的代码,并且代码运行得非常好。我想让 cmets 完全不受 propertyfile 任务的影响。请帮忙

【问题讨论】:

【参考方案1】:

[已编辑] Ant 文档说 PropertyFile 任务:

从 Ant 1.8.0 开始,保留原始属性文件的 cmets 和布局。

http://ant.apache.org/manual/Tasks/propertyfile.html

【讨论】:

isnot2bad - 我需要在加载之前更新一些属性。我将不得不使用 propertyfile 任务。 是的。我完全误解了你的问题。我修改了答案。

以上是关于ant propertyfile task update property 删除属性文件中的所有注释的主要内容,如果未能解决你的问题,请参考以下文章

使用 ANT 动态设置属性

Ant 之 Task

对于 Java 8,需要使用哪个版本的 sonar-ant-task?

java 调用ant的自己定义task,默认不是build.xml 的一点问题

sql ant task vs sqlplus:保留词“rem”

ant sql task:复杂的CLOB内容导致异常