我有一个构建脚本,作为该脚本的一部分,它将一个 jar 文件复制到一个目录,为方便起见,我们将其称为 utils jar。utils jar 由位于另一个目录中的另一个构建脚本构建。我试图让我的构建脚本运行 utils 构建脚本,以便我可以确保 utils jar 是最新的。
所以我知道我需要导入 utils 构建文件。
<import file="../utils/build/build.xml" />
这不起作用,因为与几乎所有其他 ant taks 不同,导入任务不是从 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 文件中硬编码路径。有任何想法吗?