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


191

我的代码库有一个build.properties别人写的长文件。我想查看可用的内置目标,而不必手动搜索文件。ant是否对此具有命令(例如类似命令)ant show-targets,它将使它列出构建文件中的所有目标?

Answers:


263

-p-projecthelp选项正是这样做的,所以你可以只是尝试:

ant -p build.xml

从ant的命令行文档中

-projecthelp选项将打印出构建文件目标的列表。包含description属性的目标列为“主要目标”,不包含属性的目标description列为“其他目标”,然后列出“默认”目标(仅在没有主要目标或Ant时显示“其他目标”以-verbose-debug模式调用)。


35
要在调用时将其设置为默认目标,请ant创建一个类似的目标<target name="help"> <java classname="org.apache.tools.ant.Main"> <arg value="-projecthelp" /> <arg value="-buildfile" /> <arg value="${ant.file}" /> </java> </target>,并将“ help”设置为项目中的默认目标。
sschuberth 2012年

18
我认为值得注意的是,ant -p只会显示具有描述的目标。要显示与build.xml文件关联的每个目标,您需要运行“ ant -p -v另外,这ant -p build.xml是多余的”。 ant -p将执行相同的操作,并且如果您不在build.xml目录中ant -p -buildfile path/to/build.xml,则无论如何都需要使用。
安德鲁

1
target name="help"事工作正常,但不是在Eclipse的Ant的环境中运行(它只是挂起,但-diagnostics还是其他都OK吧):-((无VM叉,开普勒用蚂蚁1.8.4(2014年5月22日),也试过与ant 1.9.4(2014-04-29)一起使用)(只是您是否问自己……我正在创建一个独立的ant env,我想在Eclipse中进行测试……当然,我有Ant视图那里)
安德烈亚斯·迪特里希

34

在构建文件中获取所有目标

ant -p -verbose


1
如果需要所有目标(所有目标,我的意思是目标中也没有描述),则需要使用-p与-v结合使用。如果仅需要主要目标(主要目标是指其中有描述的目标),则仅使用-p即可达到目的。
遗嘱

2
我只用-p看不到我需要的目标,这很完美。
JacopKane 2015年

15

-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即可列出可用的目标。

(结合@Grodriguez的答案和@sschuberth的评论-我认为单独值得一个答案)


5
小建议。将“帮助”目标设置为默认目标。结果,运行“ ant”将调用“ help”目标,该目标将打印所有可用目标。
user1697575

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.