Добавление комментариев в .properties файлы
Используя следующий блок кода в build.xml
файле
<propertyfile file="default.properties" comment="Default properties">
<entry key="source.dir" value="1" />
<entry key="dir.publish" value="1" />
<entry key="dir.publish.html" value="1" />
</propertyfile>
Я могу сгенерировать default.properties
файл со следующим содержимым файла
source.dir=1
dir.publish=1
dir.publish.html=1
Я хочу знать, как добавить комментарии в сгенерированный файл? Например. сгенерированные свойства должны иметь следующий контент:
# Default Configuration
source.dir=1
dir.publish=1
# Source Configuration
dir.publish.html=1
Как я могу сделать это динамически с помощью Ant build.xml
?
Ответы
Ответ 1
Запись файла свойств с несколькими комментариями не поддерживается. Почему?
PropertyFile.java
public class PropertyFile extends Task {
/* ========================================================================
*
* Instance variables.
*/
// Use this to prepend a message to the properties file
private String comment;
private Properties properties;
Задача файла свойства ant поддерживается классом java.util.Properties
, который хранит комментарии, используя метод store(). Только один комментарий берется из задачи и передается классу Properties
для сохранения в файл.
Способ обойти это - написать свою собственную задачу, которая поддерживается свойствами сообщества вместо java.util.Properties
. Файл свойств commons поддерживается макетом свойств, который позволяет задавать комментарии для отдельных ключей в файле свойств. Сохраните файл свойств с помощью метода save() и измените новую задачу, чтобы принять несколько комментариев через элементы <comment>
.
Ответ 2
Задача файла свойств предназначена для редактирования файлов свойств. Он содержит всевозможные приятные функции, которые позволяют изменять записи. Например:
<propertyfile file="build.properties">
<entry key="build_number"
type="int"
operation="+"
value="1"/>
</propertyfile>
Я увеличил свой build_number
на один. Я понятия не имею, что это за значение, но теперь оно больше, чем было раньше.
- Используйте задачу
<echo>
для создания файла свойств вместо <propertyfile>
. Вы можете легко компоновать содержимое, а затем использовать <propertyfile>
для редактирования этого содержимого позже.
Пример:
<echo file="build.properties">
# Default Configuration
source.dir=1
dir.publish=1
# Source Configuration
dir.publish.html=1
</echo>
- Создайте отдельные файлы свойств для каждого раздела. Вам разрешен заголовок комментария для каждого типа. Затем используйте их для объединения в один файл:
Пример:
<propertyfile file="default.properties"
comment="Default Configuration">
<entry key="source.dir" value="1"/>
<entry key="dir.publish" value="1"/>
<propertyfile>
<propertyfile file="source.properties"
comment="Source Configuration">
<entry key="dir.publish.html" value="1"/>
<propertyfile>
<concat destfile="build.properties">
<fileset dir="${basedir}">
<include name="default.properties"/>
<include name="source.properties"/>
</fileset>
</concat>
<delete>
<fileset dir="${basedir}">
<include name="default.properties"/>
<include name="source.properties"/>
</fileset>
</delete>
Ответ 3
В соответствии с документацией задачи PropertyFile
вы можете добавить сгенерированные свойства в существующий файл. У вас может быть файл свойств с только строкой комментария, и задача Ant добавляет сгенерированные свойства.