首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不同项目中生成多个目标的蚂蚁任务

在不同项目中生成多个目标的蚂蚁任务
EN

Stack Overflow用户
提问于 2011-06-19 18:14:13
回答 1查看 226关注 0票数 1

我有ant target,它同时调用其他3个项目的ant build target for junit。即使任何一个项目生成失败,此生成目标也会执行所有三个项目。这里的问题是,如果任何一个构建失败的错误消息在编译三个项目的构建目标后应该显示,但它没有发生,我如何解决它?

代码语言:javascript
复制
<target name="mainbuild">
 <antcall target="junit-1">//in different project
 <antcall target="junit-2">//in different project
 <antcall target="junit-3">//in different project
<junitreport todir="./reports">
  <fileset dir="./project-1/reports">
    <include name="TEST-*.xml"/>
  </fileset>
  <fileset dir="./project-2/reports">
    <include name="TEST-*.xml"/>
  </fileset>
  <fileset dir="./project-3/reports">
    <include name="TEST-*.xml"/>
  </fileset>
  <report format="frames" todir="./report/html"/>
</junitreport>
</target>

<target name="junit-1">
.... do somethig 
</target>
<target name="junit-2">
.... do somethig 
</target>
<target name="junit-3">
.... do somethig 
</target>

1)主构建调用3个项目,即使任何一个子项目构建失败,最后都会显示构建成功的消息,应该不会发生

2)如果任何一个子项目构建失败,生成构建报告,以便开发人员对其失败进行进一步的分析。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-20 20:06:11

由于您已经澄清了您的目标位于不同的项目中,即不同的构建文件中,因此您必须使用antsubant任务,而不是antcallsubant任务有一个名为failonerror的参数,您可以将其设置为false,这样失败就不会停止顶级构建。我不知道是否有可能将子项目构建实际上未通过测试的信息传递回顶级构建。

如果您的目标都在同一项目中,您可以更改junit任务,以便在测试失败时它们不会失败,而是设置一个属性来指示发生了失败:

代码语言:javascript
复制
<junit failureProperty="test.failed"> ... </junit>

然后,您可以在生成JUnit报告后使mainbuild目标失败:

代码语言:javascript
复制
<fail if="test.failed"> ... </fail>

我从"Ant in Action“一书中学到了这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6401794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档