gpt4 book ai didi

ant - 覆盖子文件中的目标时如何调用 Ant 目标

转载 作者:行者123 更新时间:2023-12-03 10:58:04 24 4
gpt4 key购买 nike

我有一个使用父 Ant 文件的项目

类似于:

<project name="some-portlet" basedir="." default="deploy">  
<import file="../build-common-portlet.xml" />
<target name="test">
<echo message="do foo"/>
RUN TEST FROM PARENT HERE
</target>
</project>

现在我想以这种方式覆盖父测试目标:
  • 复制一些需要的 jar
  • 从父文件运行测试目标

  • 第一部分没问题,但我没有看到从父文件调用 test 的方法

    我还希望将目标命名为 test,以便 CI 可以简单地运行测试目标。

    有没有办法在 ../build-common-portlet.xml 中调用 test ?

    最佳答案

    最简单的方法是使用对 parent 测试的依赖。

    为此,保持 <project> 很重要name 属性与其文件名同步(好吧,严格来说,这不是必需的,但大大提高了脚本的可读性和可维护性)。

    所以在 build-common-portlet.xml 中:

    <project
    name="build-common-portlet" <-- note the name
    ...
    >
    <target name="test">
    <echo message="Calling parent test target"/>
    ...
    </target>
    </project>

    这样你就可以这样做:
    <project name="some-portlet" basedir="." default="deploy">  
    <import file="../build-common-portlet.xml" />
    <target name="test"
    depends="build-common-portlet.test" <-- note parent specification
    >
    <echo message="do foo"/>
    RUN TEST FROM PARENT HERE
    </target>
    </project>

    >> 回复评论

    如果你想在运行 parent 的测试之前做一些工作,只需在 parent 的测试之前创建一个新目标并依赖它:
    <project name="some-portlet" basedir="." default="deploy">  
    <import file="../build-common-portlet.xml" />

    <target name="copy-jars">
    <echo message="copying jars"/>
    </target>

    <target name="test"
    depends="
    copy-jars,
    build-common-portlet.test
    "
    />
    </project>

    关于ant - 覆盖子文件中的目标时如何调用 Ant 目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7393697/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com