调用依赖于来自父build.xml的目标包括xml

时间:2014-08-08 08:11:05

标签: ant build

作为build.xml内部'includes'的一部分的xml文件是否可能依赖于该build.xml中的目标(向后依赖)?或者我是否需要创建一个仅具有前向依赖关系的链,并且“依赖”includedFile.target?如果可以,我该如何调用这些父目标?

我试图在很长的build.xml文件之外提取几个目标,在这种情况下:

build.xml定义了一个非常常见的目标,buildMe用于整个build.xml文件。它还定义了目标runTasks。它包括someTasks.xml。 runTasks依赖于buildMe和someTasks.groupOfTasks。

someTasks.xml定义目标groupOfTasks,task0,task1,task2。 groupOfTasks依赖于task0,task1和task2。现在task0 task1或task2可以依赖build.xml中的buildMe,还是build.xml中定义的其他目标?

1 个答案:

答案 0 :(得分:2)

这对我有用:在主项目文件中,目标默认值取决于来自commontasks.xml的目标,该目标取决于主项目文件中的目标:

<project name="main" default="default">

  <import file="commontasks.xml" as="common" />

  <target name="default" depends="common.hello" description="the main project">
  </target>

  <target name="initMain">
    <echo>initializing main</echo>
    <property name="aValue" value="MAIN" />
  </target>

<project name="commontasks" >

  <target name="hello" depends="initMain">
    <echo>hello from common tasks</echo>
    <echo>aValue: ${aValue}</echo>
  </target>

当我运行ant build时,我得到:

initMain:
 [echo] initializing main
common.hello:
 [echo] hello from common tasks
 [echo] aValue: MAIN
default:
BUILD SUCCESSFUL

目标依赖项default取决于hello取决于initMainhello可以使用initMain中定义的属性。