Builder根据项目特定的构建计划执行相应的创建活动。
新建Builder的步骤:首先点击"Builders",然后点击该页右上角的"New"图标
然后就会进入Builders编辑页面。

首先选择适当的Builder类型。 目前可以选择的Builder包括:
| Ant Builder |
| Command Builder |
| Maven Builder |
对于指定的项目,根据不同任务的需要,可以创建所需的builders,创建的数目没有限制,这个根据需求而定。 然后针对项目的每个构建计划,从这里定义的一套builder里面挑选出相应的builder或者post-builder。
提供一个用于标识该builder的名称,该名称以后可以修改。
指定运行Ant的命令(通常是ant.bat或者ant的shell文件及其所在的目录) 例如:/path/to/ant 包含在${...}里面的字符串被当作是OGNL表达式,而且在构建前被替换成实际值。 每个OGNL表达式都需要有一个对应的JAVA根对象来对表达式求值(通过反射机制),这里的根对象就是当前的Builder对象。
您可以修改Ant命令以添加命令行选项和属性,例如-Ddebug=_debug.
Ant的构建脚本文件(buildfile)所在的路径,如果该目录非绝对路径,Luntbuild认为该目录是相对项目工作目录的。
指定需要构建的目标,使用空格来分隔不同的目标(包括空格符的目标名需要用引号括起来,这样是为了避免被当成是多个目标来处理)。 如果没有指定目标,那么将使用ant构建文件的默认目标。 同样地,您可以使用OGNL表达式(${...})来传递变量,该变量作为构建的目标名。 例如,您可以使用${build.schedule.name}变量,该变量的作用是可以根据不同的构建计划使用不同的构建目标。 每个OGNL表达式都需要有一个对应的JAVA根对象来对表达式求值(通过反射机制),这里的根对象就是当前的Builder对象。
在此定义需要传递给ant构建脚本的属性,例如:
| buildVersion=${build.version} |
| scheduleName=${build.schedule.name} |
每一行只能设置一个变量。这里支持使用OGNL表达式格式,即${...}。 每个OGNL表达式都需要有一个对应的JAVA根对象来对表达式求值(通过反射机制),这里的根对象就是当前的Builder对象。
设置运行builder的环境变量,例如:
| MYAPP_HOME=${build.schedule.workingDir} |
| SCHEDULE_NAME=${build.schedule.name} |
每一行只能设置一个变量。可以在变量里插入OGNL表达式(即${...})。 每个OGNL表达式都需要有一个对应的JAVA根对象来对表达式求值(通过反射机制),这里的根对象就是当前的Builder对象。
构建成功条件式是一个用来判断当前项目是否成功构建的OGNL表达式 每个OGNL表达式都需要有一个对应的JAVA根对象来对表达式求值(通过反射机制),这里的根对象就是当前的Builder对象。 如果不设置该属性,那么会使用默认值————result==0 and logContainsLine("BUILD SUCCESSFUL")。 当这个表达式的值为true的时候,就认为本次构建是成功的。 下面的一些例子演示了OGNL表达式的格式。
| result==0, 此处的"result"表示ant构建结果的返回值。 |
| logContainsLine("^ERROR.*"), 如果构建的日志里面的某一行匹配正则表达式"^ERROR.*",那么就认为该表达式为true。 关于正则表达式的格式请参考 http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html |
| 以上的表达式可以使用'!'符号,该符号的作用是用来求相反的值。 例如,!logContainsLine("^ERROR.*"),如果构建日志里没有包括匹配指定模式的行,那么该表达式的值为true。 |
| 以上的表达式可以通过"and"和"or"逻辑运算符组合成新的表达式。 例如,表达式result==0 and !logContainsLine("^ERROR.*"),如果ANT执行构建的结果为0,且构建的日志不 包括以"ERROR"字符串打头的行,那么该表达式的值为true。 |
builder的标识名,设置后可以修改。
在此指定构建命令。例如:/path/to/command.bat "${build.version}" "${build.artifactsDir}"。 ${...}所包括的部分被当作是OGNL表达式来处理,在构建前会被实际值代替。 每个OGNL表达式都需要有一个对应的JAVA根对象来对表达式求值(通过反射机制),这里的根对象就是当前的Builder对象。
用于运行构建命令的目录。如果该目录非绝对路径,Luntbuild认为该目录是相对项目工作目录的。
在构建前需要先设置环境变量,例如:
MYAPP_HOME=${build.schedule.workingDir}
SCHEDULE_NAME=${build.schedule.name}
每行只能指定一个环境变量。OGNL表达式可以嵌入在变量的值里面,OGNL表达式需要用${...}括起来。 每个OGNL表达式都需要有一个对应的JAVA根对象来对表达式求值(通过反射机制),这里的根对象就是当前的Builder对象。
构建成功条件式是一个用来判断当前项目是否成功构建的OGNL表达式 每个OGNL表达式都需要有一个对应的JAVA根对象来对表达式求值(通过反射机制),这里的根对象就是当前的Builder对象。 如果不设置该属性,那么会使用默认值————result==0 and logContainsLine("BUILD SUCCESSFUL")。 当这个表达式的值为true的时候,就认为本次构建是成功的。
提供一个用于标识该builder的名称,该名称以后可以修改。
指定运行Maven的命令(一般来说是maven.bat,或者maven的shell脚本)。 例如:/path/to/maven。 ${...}中间的部分是OGNL表达式,在命令执行前会计算出该表达式的值。 每个OGNL表达式都需要有一个对应的JAVA根对象来对表达式求值(通过反射机制),这里的根对象就是当前的Builder对象。
<project>
...
<!--Use value of variable "buildVersion" as current version, this variable is defined in Luntbuild's Maven
builder configuration page-->
<currentVersion>${buildVersion}</currentVersion>
...
</project>
指定要在哪个目录下运行Maven。如果该目录非绝对路径,Luntbuild认为该目录是相对项目工作目录的。
指定要构建的目标。如果要指定多个目标,请用空格来分开多个目标(带空格的目标应该使用引号括起来,否则会被当作是多个目标来处理。) 在目标名字里面可以使用${...},${...}中间的部分会被当作是OGNL表达式来处理。 例如,您可以使用${build.schedule.name},该表达式可以根据不同的目标使用不同的构建计划。 每个OGNL表达式都需要有一个对应的JAVA根对象来对表达式求值(通过反射机制),这里的根对象就是当前的Builder对象。
定义传递给maven构建脚本的属性值。例如:
| buildVersion=${build.version} |
| scheduleName=${build.schedule.name} |
每一行只能设置一个变量。也可以在变量中使用OGNL表达式,OGNL表达式需要用${...}括起来。 每个OGNL表达式都需要有一个对应的JAVA根对象来对表达式求值(通过反射机制),这里的根对象就是当前的Builder对象。
在这里设置构建的时候要使用的环境变量。例如:
MYAPP_HOME=${build.schedule.workingDir}
SCHEDULE_NAME=${build.schedule.name}
每一行只能设置一个变量。也可以在变量中使用OGNL表达式,OGNL表达式需要用${...}括起来。 每个OGNL表达式都需要有一个对应的JAVA根对象来对表达式求值(通过反射机制),这里的根对象就是当前的Builder对象。
构建成功条件式是一个用来判断当前项目是否成功构建的OGNL表达式 每个OGNL表达式都需要有一个对应的JAVA根对象来对表达式求值(通过反射机制),这里的根对象就是当前的Builder对象。 如果不设置该属性,那么会使用默认值————result==0 和 logContainsLine("BUILD SUCCESSFUL")。 当这个表达式的值为true的时候,就认为本次构建是成功的。