是否有一个 ant 命令列出文件中的所有目标并且有依赖?

发布于 2024-12-09 07:41:35 字数 144 浏览 1 评论 0 原文

是否有一个 ant 命令列出文件中的所有目标并且有依赖?

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

Is there an ant command which lists all targets in a file and there depends?

Right now I just use a little power shell script to match lines that contain <target but its not really a good solution. Is there any sort of built in command?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

み青杉依旧 2024-12-16 07:41:35

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

重要的是目标的作用,这就是它的描述中应该包含的内容:

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

我真正想要的是目标依赖项,那么读取 xml 文件是您能做的最好的事情。

The closest is ant -p (or ant -p -v to get more information). This won't list the target dependencies, but I don't see it as a problem: dependencies are not important for the end user (they just tell how the target works).

What's important is what the target does, which is what should be in its description:

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

I what you really want is the target dependencies, then reading the xml file is the best you can do.

陌路终见情 2024-12-16 07:41:35

不,没有,但您可以这样做:

<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。

No there isn't but you can do it like this :

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

Where ${display.targets.xsl} points to the following .xsl file :

<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>

And ${basedir}{build.file} points to your current build.xml file. The output will be something like this :

 [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

Depending on your build.xml of course.

汐鸠 2024-12-16 07:41:35

如果您搜索“ant dependency graph”,您会发现一些有关如何从构建文件生成 .dot 文件的建议,该文件可以通过 GraphViz 呈现为可视化图形。

If you search for "ant dependency graph", you'll find some suggestions on how to produce a .dot file from your build file which can be rendered into a visual graph by GraphViz.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文