【问题标题】:Email notification on success/failed build using ant target使用 ant 目标构建成功/失败的电子邮件通知
【发布时间】:2011-03-30 22:54:39
【问题描述】:

我当前的代码(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="dmin@company.com" messagemimetype="text/html" charset="ISO-7779-1" messagefile="${report}" mailhost="HMMMM.company.com" mailport="25" tolist="admin@company.com" 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>'

【问题讨论】:

    标签: unit-testing ant build build-process build-automation


    【解决方案1】:

    您可以实现BuildListener,按照ant FAQ 中的描述发送电子邮件

    【讨论】:

    • 我的应用程序在.NET 中,它独立于它吗?另外,你还能指导我在给定的 build.xml 中使用某种 Try/Catch 的东西来做同样的事情吗?谢谢。
    • 常见问题描述的构建监听器不会是您应用程序的一部分,而是 ant 使用的类 - 并且 ant 是用 java 编写的。如果构建失败,我认为没有办法执行任务,因为如果发生这种情况,ant 会停止处理构建文件
    • 嗯,我会尝试,但这就是 Try/catch 的用途?如果失败,catch 中的代码将执行.. 只是我不确定,如何/在哪里完成这个脚本/xml 文件?任何指针?谢谢。 p.s.有人建议我使用 Try/catch,这就是强调该技术的原因。
    • 常见问题的 BuildListener 示例中的 try/catch 块捕获发送邮件时发生的错误 - 而不是在执行构建时。要使用它,使用 javac 编译类并确保它在 ant 的类路径中,如何激活它显示在代码示例下方
    猜你喜欢
    • 2017-12-19
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 2017-09-17
    • 2014-11-24
    相关资源
    最近更新 更多