附录 A. 构建时支持的OGNL 表达式

build.version

构建版本号

build.artifactsDir

构建副产品目录,它是build.publishDir的子目录.

build.publishDir

构建发布目录

build.junitHtmlReportDir

JUnit 测试的Html 报告目录

build.schedule.name

Build schedule 的名字.

build.schedule.description

Build schedule 描述

build.schedule.workingDir

Build schedule 工作目录.

build.schedule.vcsModified

VCS改变了吗?

build.schedule.dependencyNewer

是否检查依赖的schedule更新?

build.schedule.project.name

构建项目名.

build.schedule.project.description

构建项目描述.

下面是OGNL表达式的一些例子:

  1. build.schedule.vcsModified - 假若当前构建所使用的VCS内容改变了,值为true

  2. build.schedule.project["testcvs"].vcsModified - 假若“development”视角的"trstcvs"项目的VCS内容发生了改变,值为true

  3. ant("/path/to/command.xml", "targetA") == 0 - 假若执行ant脚本/path/to/command.xml的targetA,返回success的话,值为true.

    注意

    '\','"'这种特殊字符请按照Java字符串的规则前面加上'\'转义。 若不是绝对路径,Ant文件的路径会被假设为相对于当前项目工作目录,假若target是""或者null,会执行默认的target.

  4. execute("/path/to/command.sh") == 0 -

    注意

    假若执行此命令的返回值为0,值为true '\','"'这种特殊字符请按照Java字符串的规则前面加上'\'转义。

以上的表达式可以在前面加上'!'来对值反转,比如假若当前项目的VCS内容没有改变,!modified会是true.

以上的表达式可以使用"and","or"进行组合。比如,modified or execute("/path/to/command.sh")==0的值,在当前项目的VCS内容变化了,或者执行特定命令的返回为0的时候,会是 true.

请到http://www.ognl.org学习OGNL表达式的语法。