<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<twilio-version>6.3.0</twilio-version>
</properties>
假设我在pom.xml中有上面的设置,是否可以从中获取java版本?
我的想法是让Jenkins / JenkinsFile运行一些说'maven GRAB_PARAM PARAM_NAME'的方法并使用任何值来设置它的构建环境。
所以我的JenkinsFile会是:
node {
stage 'Clean Up'
deleteDir()
stage 'Env Setup'
def mvnHome = tool '3.0.3'
env.JAVA_HOME = THE_MVN_COMMAND_THAT_CAN_GRAB_VERSION_FROM_POM
stage 'Compile/Package'
checkout scm
sh "${mvnHome}/bin/mvn clean install -DskipTests"
}
我也想使用它,所以我可以轻松地从之前的构建中获取构建版本等......
答案 0 :(得分:2)
maven-help-plugin and its goal evaluate可能就是您所需要的。
像
这样的东西mvn org.apache.maven.plugins:maven-help-plugin:2.2:evaluate -Dexpression=project.version
将输出项目版本。
答案 1 :(得分:2)
是的,您可以使用Maven帮助插件及其evaluate
Mojo:
评估用户以交互模式提供的Maven表达式。
mvn help:evaluate -Dexpression=java.version
对于版本高达2.2,这有一个不幸的情况是用它打印大量信息,可以通过在Windows上将结果传递给| findstr /v "[INFO]"
或| grep -v "[INFO]"
或Unix-来过滤掉线系统。
从3.0.0版开始,您可以使用
mvn help:evaluate -Dexpression=java.version -Doutput=result.txt
将评估的输出重定向到文件。截至今天,3.0.0仍然处于SNAPSHOT状态,因此您可以将插件存储库添加到您的设置或POM,允许快照,并指向https://repository.apache.org/content/repositories/snapshots/
处的Apache快照存储库。