gpt4 book ai didi

Ant 构建脚本、antcall、依赖项等

转载 作者:行者123 更新时间:2023-12-02 02:59:14 27 4
gpt4 key购买 nike

我有一个构建脚本,作为该脚本的一部分,它将一个 jar 文件复制到一个目录,为了方便起见,我们将其称为 utils jar。 utils jar 是由位于另一个目录中的另一个构建脚本构建的。我正在尝试让我的构建脚本运行 utils 构建脚本,以便我可以确保 utils jar 是最新的。

所以我知道我需要导入 utils 构建文件。

<import file="../utils/build/build.xml" />

这不起作用,因为导入任务与几乎所有其他 ant 任务不同,不是从 basedir 运行,而是从 pwd 运行。因此,为了解决这个问题,我有这首小曲,它确实成功导入了构建文件

  <property name="baseDirUpOne" location=".." />
<import file="${baseDirUpOne}/utils/build/build.xml" />

现在我解决了我的导入问题,我需要调用该任务,这应该很容易吧:

<antcall target="utils.package" />

注意,上面的utils是../utils/build/build.xml的项目名称

我现在遇到的问题是 ant 调用不会在 ../utils/build 中执行,所以我需要但找不到的是 runat 属性或类似的东西,本质上是:

<antcall target="utils.package" runat="../utils/build" />

我需要这个的原因是,在我的 utils 构建文件中,选择将哪些代码复制到 jar 的步骤是基于相对路径的,以避免在我的 ant 文件中硬编码路径。有任何想法吗?

最佳答案

我已经进行了类似的设置:我有一个主 Ant build.xml,它调用一个单独的 build.xml 来负责构建我的测试。我就是这样做的:

<target name="build-tests">
<subant target="build">
<fileset dir="${test.home}" includes="build.xml"/>
</subant>
</target>

诀窍是使用subant而不是 antcall。您不必导入其他构建文件。

关于Ant 构建脚本、antcall、依赖项等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8790/

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