【问题标题】:How I prevent that ant calls ant files twice and calls the files in the correct sequence我如何防止蚂蚁两次调用蚂蚁文件并以正确的顺序调用文件
【发布时间】:2018-06-05 10:15:20
【问题描述】:

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

我有大约 50 个带有现有 build.xml 的项目。现在我想创建一些 ant-scripts (call_needed_files.xml) 来调用依赖项目的 ant-scripts - 对于某些项目我需要构建一些其他项目,因为它们需要这个 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'”功能,这样我就不需要以正确的顺序调用这些项目了?

【问题讨论】:

    标签: java ant


    【解决方案1】:

    是否有可能使用“目标依赖='其他目标'” 覆盖所有这些项目,这样我就不需要调用 项目的顺序正确吗?

    你猜对了! “depends”下定义的目标只执行一次。

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

    从上面的网址:

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

    因此,您可以将那些只需要执行一次的目标添加到“depends”中。

    【讨论】:

    • 是的,但是我怎么能在不同的蚂蚁脚本上做到这一点呢?我无法导入脚本,因为有许多同名的任务,所以它们会被我不想要的覆盖。而且我不能写 。也许我想得太复杂了,但请举个例子。
    猜你喜欢
    • 1970-01-01
    • 2015-03-22
    • 2013-07-13
    • 2010-10-28
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多