是否有一个ant命令列出文件中的所有目标,这取决于哪些?

时间:2011-10-11 07:20:52

标签: ant

是否有一个ant命令列出了文件中的所有目标,取决于哪些?

现在我只是使用一个小的power shell脚本来匹配包含<target的行,但它不是一个很好的解决方案。是否有任何内置命令?

3 个答案:

答案 0 :(得分:1)

最接近ant -p(或ant -p -v以获取更多信息)。这不会列出目标依赖项,但我不认为它是一个问题:依赖项对最终用户来说并不重要(它们只是告诉目标是如何工作的)。

重要的是目标的作用,其描述应该是什么:

<target name="foo" depends="bar" description="Does the foo operation">
    ...
</target>

我真正想要的是目标依赖项,然后阅读xml文件是你能做的最好的。

答案 1 :(得分:0)

没有,但你可以这样做:

<target name="list.targets">
    <xslt in="${basedir}\{build.file}"
          out="tmp"
          style="${display.targets.xsl}">
    </xslt>
    <delete file="tmp"/>
</target>

$ {display.targets.xsl}指向以下.xsl文件:

<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
    <xsl:output method='text'/>

    <xsl:template match="/">
        <xsl:for-each select="//target">
            <xsl:sort data-type="text" select="@name"/>
            <xsl:message terminate="no">
Target : <xsl:value-of select="@name"/><xsl:if test="@depends"> depends on : <xsl:value-of select="@depends"/>
                </xsl:if>
                <xsl:if test="@description">
Description : <xsl:value-of select="@description"/>
                </xsl:if>
            </xsl:message>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

$ {basedir} {build.file}指向您当前的build.xml文件。输出将是这样的:

 [xslt] Loading stylesheet D:\Tools\StackOverFlow\test.xslt
 [xslt]
 [xslt] Target : build
 [xslt]
 [xslt] Target : modify.trs
 [xslt] Description : Modifies .trs file targets
 [xslt]
 [xslt] Target : regex depends on : modify.trs

当然,具体取决于你的build.xml。

答案 2 :(得分:0)

如果您search for "ant dependency graph",您会找到一些关于如何从构建文件生成.dot文件的建议,该文件可以通过GraphViz呈现为可视化图形。

相关问题