我有一个Ant构建文件(build.xml),由某个应用程序调用。我想确切地知道用于调用Ant的属性类型。因此,我想修改build.xml文件以显示调用中指定的所有属性,例如:
ant aTarget -Dxslt.parser=SAXON -Dbasedir=aFolder
将显示如下列表
- target: aTarget
- xslt.parser = SAXON
- basedir=aFolder
请注意,我不确切知道调用Ant的确切内容。因此,我需要使用某种循环获取所有属性,选项。
答案 0 :(得分:0)
想到的最简单的事情就是设置一条线:
<echo message="Ant invocation is '${sun.java.command}'" />
在任何目标之外的构建文件中。它看起来像是:
% ant aTarget -Dx=y
[echo] ant invocation is: 'org.apache.tools.ant.launch.Launcher -cp . aTarget -Dx=y'
它显示了传递给Ant Launcher的内容,它可能比传递给ant包装器脚本的内容多一点,但应该这样做。
我会避免尝试解析这条线,就像你说的那样,你不知道那里会有什么,它很快就会变得复杂。
答案 1 :(得分:0)
<property name="in.file.prop" value="value2"/>
<echoproperties/>
in.file.prop
将打印其值。但是,还将打印60多个其他属性,包括Ant内置的属性。
您可以将<echoproperties>
的结果保存到文件中,然后使用<linecontains>
filter之类的内容过滤该文件。