Почему задача propertiesFile в ant изменит порядок свойств в файле?

Взять свойства файлов вроде

#File One
# Раздел первый
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= В
sect1.sample = В
sect1.number=ABC
sect2.number= В
sect1.test=ABC

Обратите внимание, что комментарии ушли, и порядок отличается.

Что я делаю, Вонг, есть ли работа вокруг?

Grae

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
Другие вопросы по тегам