将 ant 文件集回显到屏幕以进行调试
Posted
技术标签:
【中文标题】将 ant 文件集回显到屏幕以进行调试【英文标题】:Echoing out ant fileset to screen for Debugging 【发布时间】:2011-04-25 11:03:04 【问题描述】:我有这个:
<ivy:buildlist reference="build-path">
<fileset dir="$root.dir">
<include name="*/build.xml" />
<include name="controllers/*/build.xml" />
</fileset>
</ivy:buildlist>
<subant buildpathref="build-path">
<target name="jar.all" />
<target name="publish-local" />
</subant>
我想回显“构建路径”参考中的所有内容(用于调试某些内容)。
我试过了:
<echo>$build-path</echo>
但它只是回显了确切的文本“$build-path”
【问题讨论】:
【参考方案1】:您可以使用documented(老实说,它在某处...)toString
helper:
<echo message="My build-path is $toString:build-path" />
【讨论】:
它曾经是一种非正式的黑客攻击......但是它已经完全“正式化”并记录在 Ant 1.8.1 中。 谢谢,我知道有这样的东西,但是搜索文档有点痛苦……快写我自己的任务了。【参考方案2】:要调试文件集中包含哪些文件,您可以使用此示例,它以可读格式打印文件集的内容:
<?xml version="1.0" encoding="UTF-8"?>
<project name="de.foo.ant" basedir=".">
<!-- Print path manually -->
<target name="print-path-manually" description="" >
<path id="example.path">
<fileset dir="$ant.library.dir"/>
</path>
<!-- Format path -->
<pathconvert pathsep="$line.separator| |-- "
property="echo.path.compile"
refid="example.path">
</pathconvert>
<echo>$echo.path.compile</echo>
</target>
</project>
这个输出是:
Buildfile: D:\Workspaces\IvyTutorial\de.foo.ant\prettyPrintPath.xml
print-path-manually:
[echo] D:\Programme\eclipse-rcp-helios-SR1-win32\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-antlr.jar
[echo] | |-- D:\Programme\eclipse-rcp-helios-SR1-win32\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-apache-bcel.jar
[echo] | |-- D:\Programme\eclipse-rcp-helios-SR1-win32\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-apache-bsf.jar
[echo] | |-- D:\Programme\eclipse-rcp-helios-SR1-win32\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-apache-log4j.jar
[echo] | |-- D:\Programme\eclipse-rcp-helios-SR1-win32\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-apache-oro.jar
[echo] | |-- D:\Programme\eclipse-rcp-helios-SR1-win32\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-apache-regexp.jar
[echo] | |-- D:\Programme\eclipse-rcp-helios-SR1-win32\eclipse\plugins\org.apache.ant_1.7.1.v20100518-1145\lib\ant-apache-resolver.jar
....
【讨论】:
请注意,使用不带 'property' 属性的启用 ant 的调试日志记录:
$ ant -h
ant [options] [target [target2 [target3] ...]]
Options:
...
-verbose, -v be extra verbose
-debug, -d print debugging information
请注意,尽管这会产生大量输出,因此最好将输出捕获到文件中,然后在文本编辑器中查找文件集信息:
ant -debug compile > ant-out.txt
【讨论】:
以上是关于将 ant 文件集回显到屏幕以进行调试的主要内容,如果未能解决你的问题,请参考以下文章