在.properties文件中添加注释

时间:2013-04-10 11:11:16

标签: java ant properties-file

使用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动态执行此操作?

3 个答案:

答案 0 :(得分:9)

不支持使用多个注释编写属性文件。为什么?

<强> 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类以保存到文件中。

解决此问题的方法是编写由commons properties而不是java.util.Properties支持的自己的任务。 commons属性文件由property layout支持,允许settings comments for individual keys在属性文件中。使用save()方法保存属性文件,并修改新任务以通过<comment>元素接受多个注释。

答案 1 :(得分:7)

属性文件任务用于编辑属性文件。它包含各种允许您修改条目的好功能。例如:

<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>      

答案 2 :(得分:1)

根据PropertyFile任务的documentation,您可以将生成的属性附加到现有文件。您可以使用仅包含注释行的属性文件,并让Ant任务附加生成的属性。