0

取一个属性文件,如

#文件一
#第一节
sect1.number=测试1
sect1.sample=Test2
sect1.test=Test3

#第二节
sect2.number=测试1
sect2.sample=Test2
sect2.test=Test3

运行此蚂蚁后:

<property file="sample1.properties"/>
<propertyfile file="sample1.properties">
   <entry key="sect1.number" value="ABC"/>
   <entry key="sect1.sample" value="B"/>
   <entry key="sect1.test" value="ABC"/>
   <entry key="sect2.number" value="B"/>                    
   <entry key="sect2.sample" value="ABC"/>
   <entry key="sect2.test" value="B"/>
</propertyfile>
 

属性文件将结束为:
#更新到废话
sect2.sample=ABC
sect2.test=B
sect1.sample=B
sect1.number=ABC
sect2.number=B
sect1.test=ABC

请注意,评论消失了,顺序不同。

我在做什么啊,有解决办法吗?

格雷

4

1 回答 1

1

我猜你使用的 Ant 版本早于 1.8。

从 1.8 开始,propertyfile 任务默认为保留注释的“布局保留”模式(并且可能保留属性顺序,但我不确定)。

在该版本中,您可以通过指定jdkproperties=true

原始文件

$ cat sample1.properties.original
#File One
#Section One
sect1.number=Test1
sect1.sample=Test2
sect1.test=Test3

#Section Two
sect2.number=Test1
sect2.sample=Test2
sect2.test=Test3

在我的 Ant 1.8.2 环境中使用您的构建文件创建的版本

$ cat sample1.properties.default
#Mon, 11 Jun 2012 14:39:08 +0000
#File One
#Section One
sect1.number=ABC
sect1.sample=B
sect1.test=ABC

#Section Two
sect2.number=B
sect2.sample=ABC
sect2.test=B

在我的 Ant 1.8.2 环境中使用您的构建文件创建的版本,但指定 jdkproperties="true"

$ mv sample1.properties sample1.properties.jdk
$ cat !$
cat sample1.properties.jdk
#Mon Jun 11 14:41:01 GMT 2012
sect2.test=B
sect1.test=ABC
sect2.sample=ABC
sect2.number=B
sect1.sample=B
sect1.number=ABC

我的蚂蚁环境

$ ant -version
Apache Ant(TM) version 1.8.2 compiled on December 20 2010
于 2012-06-07T07:53:28.500 回答