【问题标题】:adding comment in .properties files在 .properties 文件中添加注释
【发布时间】:2013-04-02 04:45:30
【问题描述】:

通过在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

我想知道如何在生成的文件中添加我的 cmets?例如。生成的属性应该有以下内容:

# Default Configuration
source.dir=1
dir.publish=1
# Source Configuration
dir.publish.html=1

如何使用 Ant 的 build.xml 动态地做到这一点?

【问题讨论】:

  • 属性文件中是否需要多个 cmets ?您能否编辑您的问题以反映您期望这些 cmets 的位置。
  • 是的,我已经编辑了问题,现在你可以看到我想要的了...
  • 是的,我需要多条评论

标签: java ant properties-file


【解决方案1】:

属性文件任务用于编辑属性文件。它包含各种不错的功能,可让您修改条目。例如:

<propertyfile file="build.properties">
    <entry key="build_number"
        type="int"
        operation="+"
        value="1"/>
</propertyfile>

我的build_number 加了1。我不知道值是多少,但现在比以前大一。

  • 使用&lt;echo&gt; 任务而不是&lt;propertyfile&gt; 来构建属性文件。您可以轻松地布局内容,然后使用&lt;propertyfile&gt; 稍后编辑该内容。

例子:

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

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

    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() 方法存储 cmets。仅从任务中获取一条评论并将其传递给Properties 类以保存到文件中。

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2019-03-14
        • 1970-01-01
        • 1970-01-01
        • 2013-04-11
        • 2022-06-23
        • 2015-04-24
        • 2014-07-26
        • 2014-02-11
        • 2021-08-05
        相关资源
        最近更新 更多