我如何防止该ant调用ant文件两次并以正确的顺序调用文件

时间:2018-06-05 10:15:21

标签: java ant

直到现在我才尝试,但我想从一开始就阻止它。

我有大约50个带有现有build.xml的项目。现在我想创建一些ant脚本(call_needed_files.xml)来调用依赖项目的ant脚本 - 对于一些项目我需要构建一些其他项目,因为他们需要这个jar。

例如我有这个问题:

Workspace
   Project 1
     call_needed_files.xml
     build.xml
   Project 2
     call_needed_files.xml
     build.xml
   Project 3
     call_needed_files.xml
     build.xml

每个build.xml都有一个目标“build”和其他具有相同名称的目标。

<!-- project1/call_needed_files.xml -->
<project name="build project 1">
   <!-- build.xml of the dependent projects -->
   <ant antfile="../project2/call_needed_files.xml">
   <ant antfile="../project3/call_needed_files.xml">

   <!-- build.xml of the own project -->
   <ant antfile="build.xml">
</project> 

<!-- project2/call_needed_files.xml -->
<project name="build project 2">
   <!-- build.xml of the dependent projects -->
   <ant antfile="../project3/call_needed_files.xml">

   <!-- build.xml of the own project -->
   <ant antfile="build.xml">
</project> 

<!-- project3/call_needed_files.xml -->
<project name="build project 3">
   <!-- build.xml of the own project -->
   <ant antfile="build.xml">
</project> 

那我怎么能阻止项目3的构建调用两次呢? ......或者这是蚂蚁的“标准特征”吗?

是否有可能在所有这些项目中使用“target depends ='othertargets'”功能,这样我就不需要按正确的顺序调用项目了?

1 个答案:

答案 0 :(得分:0)

  

是否有可能使用&#34;目标依赖=&#39;其他目标&#39;&#34;   所有这些项目的功能,所以我不需要调用   按正确的顺序进行项目?

你猜对了!在&#34;下定义的目标取决于&#34;只执行一次。

https://ant.apache.org/manual/targets.html

来自以上网址:

  

在A之后,然后B,然后C执行,执行返回到D的依赖列表,它不会调用B和A,因为它们已经分别在C和B的依赖解析过程中被调用为D的依赖关系

所以,你可以在&#34;依赖&#34;中添加这些目标。这只需要执行一次。