【发布时间】:2015-01-29 15:51:54
【问题描述】:
我们使用 Ant 来控制我们的产品创建工作流程,并且目标的数量相当广泛。我们使用大量 build.xml 文件,这些目标调用其他目标(许多目标并行运行)。
我们有一个扩展 Ant BuildListener 的 java 类,以便我们可以侦听 BuildEvents 并将每个目标的开始和停止时间写入 Oracle 数据库。但是,现在我需要能够找出每个目标的父目标——也需要记录这些信息。所以如果我有这个:
<target name="targetA">
<parallel>
<antcall target="targetB"/>
<antcall target="targetC"/>
</parallel>
<antcall target="targetD"/>
有时我们的目标对同一个 build.xml 中的目标进行多次 antcall,有时我们对指定目标的子目录中的其他 build.xml 进行 ant 调用。
无论如何,我想知道一种方法可以找出 targetA 是 targetB 的父级。我以为我可以从侦听器的 BuildEvent 中的属性中确定此信息。但这似乎不可用。因此,当我收到一个 BuildEvent 告诉我 targetB 已启动时,BuildEvent 似乎不知道 TargetA。
有没有其他人成功地尝试过这样的事情?我一直在尝试使用监听器,但不会反对可以确定目标层次结构的后期处理。
【问题讨论】:
-
您是在构建东西,还是在使用 Ant 作为编程语言?
-
我们使用 ant 来构建我们的软件,同时也使用工作流来构建一些东西(我们的产品)——这是一个 ETL 过程。但是软件中的一些 java 类扩展了 ant 类,例如 BuildListener。