如何在Ant中获取构建目标列表?

210

我的代码库有一个由别人编写的很长的build.properties文件。我想要查看可用的构建目标而不必手动搜索文件。Ant是否有一个类似于ant show-targets的命令,可以列出构建文件中的所有目标?

4个回答

280

-p-projecthelp选项可以精确执行此操作,因此您可以尝试:

ant -p build.xml

从ant的命令行文档中得知:

-projecthelp选项会打印出构建文件的目标(target)列表。具有description属性的目标被列为“主要目标”,那些没有description属性的目标被列为“其他目标”,然后是“默认”目标(只有在没有主要目标,或者以-verbose-debug模式调用Ant时,“其他目标”才会显示)。


36
为了使ant在默认情况下执行此操作,您需要创建一个目标,如下所示: 并将"help"设置为您项目的默认目标。 - sschuberth
19
值得注意的是,ant -p 只会显示具有描述信息的目标。要显示与 build.xml 文件关联的所有目标,您需要运行 ant -p -v。另外,ant -p build.xml 是多余的。ant -p 将执行相同的操作,如果您不在 build.xml 目录下,则需要使用 ant -p -buildfile path/to/build.xml - Andrew
1
target name="help" 这个东西很好用,但在Eclipse Ant环境中运行时不起作用(它只是挂起了,但 -diagnostics 或其他命令可以正常工作):-( (没有vm fork,Kepler与ant 1.8.4(2014-05-22)以及尝试过ant 1.9.4(2014-04-29))(如果你问自己...我正在创建一个独立的ant env,我想在Eclipse中测试它...当然我有我的Ant View - Andreas Covidiot

36
获取构建文件中的所有目标

ant -p -verbose


1
我们需要使用 -p 与 -v 结合使用,如果我们需要所有目标(我指的是那些没有描述的目标)。如果只需要主要目标(我指的是那些有描述的目标),仅使用 -p 就可以了。 - Wills
2
我只用 -p 无法看到我需要的目标,这个完美解决了。 - JacopKane

16

-p-projecthelp 选项正是这样做的,所以您可以执行以下操作:

ant -p build.xml

您可以创建一个目标,以便像这样调用:

<target name="help">
    <java classname="org.apache.tools.ant.Main">
        <arg value="-projecthelp" />
        <arg value="-buildfile" />
        <arg value="${ant.file}" />
    </java>
</target>

然后您可以将其设置为默认值,因此只需键入ant即可列出可用的目标。


5
小小建议:将“帮助(help)”目标设为默认目标。这样,运行“ant”命令就会自动执行“help”目标,并打印出所有可用的目标。 - user1697575

2
你可以通过以下命令在build.xml中检查目标和默认目标的列表:

ant -p built.xml


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接