保存 ANT 构建结果并在批处理运行结束时显示



我编写了一个按顺序运行多个 ant 构建的批处理文件。我想知道是否有办法保存每个构建的结果(无论成功还是失败(并在最后显示它?例如:

Project1 - Success
Project2 - Success
Project3 - Failed
Project4 - Success

我无法编辑任何 ant 构建文件,只能编辑用于运行它们的批处理文件:

@echo off
cd c:<project1_dir>build
call C:Homeapache-ant-1.9.4binant -buildfile build1.xml
echo.
cd c:<project2_dir>build
call C:Homeapache-ant-1.9.4binant -buildfile build2.xml
echo.
cd c:<project3_dir>build
call C:Homeapache-ant-1.9.4binant -buildfile build3.xml
echo.
cd c:<project4_dir>build
call C:Homeapache-ant-1.9.4binant -buildfile build4.xml

谢谢!

更新:

根据David W的回答,我想出了以下内容:

@echo off
cd c:<project1_dir>build
call C:Homeapache-ant-1.9.4binant -buildfile build1.xml
set result1=%ErrorLevel%
echo.
cd c:<project2_dir>build
call C:Homeapache-ant-1.9.4binant -buildfile build2.xml
set result2=%ErrorLevel%
echo.
cd c:<project3_dir>build
call C:Homeapache-ant-1.9.4binant -buildfile build3.xml
set result3=%ErrorLevel%
echo.
cd c:<project4_dir>build
call C:Homeapache-ant-1.9.4binant -buildfile build4.xml
set result4=%ErrorLevel%
if "%result1%"=="0" (
    echo Project1: Succeeded
) else (
    echo Project1: Failed
)
if "%result2%"=="0" (
    echo Project2: Succeeded
) else (
    echo Project2: Failed
)
if "%result3%"=="0" (
    echo Project3: Succeeded
) else (
    echo Project3: Failed
)
if "%result4%"=="0" (
    echo Project4: Succeeded
) else (
    echo Project4: Failed
)

上面的代码完全符合我想要它的作用。 谢谢一堆!

Ant 在

良好的构建中返回退出代码 0,在不良构建上返回非零的退出代码。这存储在errorLevel中,可以使用 if 语句进行测试:

if errorlevel 1 (
   echo "Job Failed"
)
if %ErrorLevel% EQU 0 (
   echo "Job Succeeded
)

或者类似的东西...我并没有真正了解我的 Windows 批处理文件语法。我不知道call如何影响ErrorLevel的设置。您可能必须在调用的脚本中将环境变量设置为ErrorLevel,然后从那里开始工作。

看看使用像 Jenkins 这样的持续构建系统,它将为你自动化很多这些问题。Jenkins 可以构建:

  • 在特定时间。
  • 当源代码更改时。
  • 按需
  • 或上述的组合(每天下午 5 点构建,但前提是源代码已更改(。
这会将构建

移动到独立的服务器(不再,它适用于我的机器问题(,Jenkins 将保留构建输出,在其仪表板上显示哪些作业成功或失败,甚至在构建失败时发送电子邮件(或推文或 IM(特定人员(包括罪魁祸首(。如果使用单元测试,Jenkins 可以运行单元测试,并显示其中有多少测试成功或失败。

Jenkins使用Java,但它相当容易设置——即使在Windows系统上也是如此。它可以使用 Tomcat 或 JBoss 作为应用程序服务器引擎,也可以使用自己的内部应用程序服务器。

相关内容

  • 没有找到相关文章

最新更新