39

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

4

3 回答 3

10

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

<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>      
于 2013-04-10T14:00:21.673 回答
9

不支持编写具有多个注释的属性文件。为什么 ?

属性文件.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 属性文件任务由一个使用store()方法java.util.Properties存储注释的类支持。仅从任务中获取一条注释并将其传递给类以保存到文件中。Properties

解决这个问题的方法是编写由公共属性支持的自己的任务,而不是java.util.Properties. 公共属性文件由属性布局支持,该布局允许对属性文件中的各个键进行设置注释使用save()方法保存属性文件并修改新任务以通过<comment>元素接受多个注释 。

于 2013-04-10T12:05:30.747 回答
1

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

于 2013-04-10T11:28:15.243 回答