Maven内置变量说明:
- ${basedir} 项目根目录(即pom.xml文件所在目录)
- ${project.build.directory} 构建目录,缺省为target目录
- ${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes
- ${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}
- ${project.packaging} 打包类型,缺省为jar
- ${project.xxx} 当前pom文件的任意节点的内容
- ${env.xxx} 获取系统环境变量。例如,"env.PATH"指代了$path环境变量(在Windows上是%PATH%)。
- ${settings.xxx} 指代了settings.xml中对应元素的值。例如:<settings><offline>false</offline></settings>通过 ${settings.offline}获得offline的值。
- Java System Properties: 所有可通过java.lang.System.getProperties()访问的属性都能在POM中使用,例如 ${JAVA_HOME}。
Jenkins中集成了对mvn工程属性的访问变量(集体是哪个版本,我没有找到具体的的版本,我用的是Jenkins 1.640):
POM_DISPLAYNAME : project.displayName //项目名称
POM_VERSION : project.version //项目版本
POM_GROUPID : project.groupId //项目或者组织的唯一标志
POM_ARTIFACTID : project.artifactId //项目的通用名称
POM_PACKAGING : project.packaging //打包的方式
在Jenkins中的maven类型的项目中调用,调用的时候要注意引用变量使用%%包起来,比如要获取项目的版本参见下图:
在jenkins中Job的Shell脚本上的使用:
1、增加构建步骤:Execute shell 或 Execute Windows batch command,在文本框上增加想要的shell脚本等。
2、使用区分:Windows:%BUILD_ID%,Linux:${BUILD_ID};如果在linux下出现获取不到的问题,可能是版本太旧,可以尝试下$BUILD_ID的写法。