使用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
动态执行此操作?
答案 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任务附加生成的属性。