在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
?
属性文件任务用于编辑属性文件。它包含各种不错的特性,允许您修改条目。例如:
<propertyfile file="build.properties">
<entry key="build_number"
type="int"
operation="+"
value="1"/>
</propertyfile>
我把我的build_number
加了1。我不知道它的值是多少,但它现在比以前大了1。
- 使用
<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>
不支持写带有多个注释的属性文件。为什么?
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属性而不是java.util.Properties
支持的自己的任务。commons属性文件由属性布局支持,该布局允许对属性文件中的单个键进行设置注释。使用Save()方法保存属性文件,并修改新任务以通过<comment>
元素接受多个注释。
根据PropertyFile
任务的文档,您可以将生成的属性附加到现有文件中。您可以有一个只有注释行的属性文件,并让Ant任务附加生成的属性。