2010-08-17 28 views
1

我的当前代码(build.xml)使我能够在成功构建时发送电子邮件,但失败时不会发生任何事情。通过类似于“........ -DrepositoryAddress =%1 -DbuildResultUUID =%2 startPublish”的命令,从build.bat文件调用目标(对于所有目标,按startActivity-> startPublish-> mailer- > startActivity)。使用蚂蚁目标成功/失败的电子邮件通知

现在,我还希望在构建失败时收到电子邮件通知。我想trycatch会帮助我完成任务,但是如何实现?不确定它在哪里/如何放置(编辑它?)?我使用trycatch,它给了我一些像“问题:未能创建任务或键入trycatch”。在当前脚本/ xml文件中需要进行哪些修改才能启用发送电子邮件的功能,以指示构建状态(成功或失败)。请指导/帮助。非常感谢。

'

<target name="startActivity"> 
     <fail message="Missing repositoryAddress" unless="repositoryAddress"/> 
     <fail message="Missing buildResultUUID" unless="buildResultUUID"/> 
     <fail message="Missing activityLabel" unless="activityLabel"/> 

    <!-- Replace ADMIN with your real credentials. --> 
     <startBuildActivity 
       buildResultUUID="${buildResultUUID}" 
       label="${activityLabel}" 
       autoComplete="true" 
        repositoryAddress="${repositoryAddress}" 
       userId="BuildAdmin" 
        password="Abc1234"/> 
</target> 

    <target name="startPublish"> 
    <sleep seconds="10"/> 
     <fail message="Missing repositoryAddress" unless="repositoryAddress"/> 
     <fail message="Missing buildResultUUID" unless="buildResultUUID"/> 

    <artifactfilePublisher repositoryAddress="${repositoryAddress}" 
       userId="BuildAdmin" 
        password="Abc1234" 
        buildResultUUID="${buildResultUUID}" 
         filePath="E:\Setup.msi" 
         label="Installer" /> 

</target> 


    <target name="mailer"> 
    <property name="report" value="E:\Report.html"/> 

      <mail from="[email protected]" messagemimetype="text/html" charset="ISO-7779-1" messagefile="${report}" mailhost="HMMMM.company.com" mailport="25" tolist="[email protected]" subject="Build status" /> 

</target> 

    <taskdef name="startBuildActivity" 
      classname="com.ibm.team.build.ant.task.StartBuildActivityTask" /> 
    <taskdef name="artifactfilePublisher" 
      classname="com.ibm.team.build.ant.task.ArtifactFilePublisherTask" /> 


</project>' 

回答

0

你可以实现一个BuildListener作为ant FAQ

+0

我的专利申请是在.NET中,它是独立于它发送的电子邮件?另外,你还可以指导我在给定的build.xml中使用某种Try/Catch事物来做同样的事情吗?谢谢。 – user365402 2010-08-17 16:00:41

+0

faq描述的构建监听器不会成为你的应用程序的一部分,但是类蚂蚁使用 - 而ant是用java编写的。如果构建失败,我认为没有办法执行任务,因为如果发生这种情况,ant ant就会处理构建文件 – 2010-08-17 16:30:46

+0

嗯,我会尝试,但这就是Try/catch的用途?如果失败,catch中的代码会执行..这只是我不确定,在脚本/ xml文件中如何/在何处完成它?任何指针?谢谢。 p.s.我被推荐使用Try/catch,这就是为什么强调这种技术。 – user365402 2010-08-18 05:19:11

相关问题