Подтвердить что ты не робот

Добавление комментариев в .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?

4b9b3361

Ответ 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 добавляет сгенерированные свойства.