我在我的 Jenkins 作业中使用 maven-release-plugin,并且我在执行 shell 脚本时启用了“在 SCM 运行之前运行构建步骤”。我想访问此 shell 脚本中的发布版本但无法访问它。我不确定在这个插件中存储发布版本的变量是什么。
我试过用
\"release_version\": \"$releaseVersion\"
我看到正在执行的 maven 命令是:
执行 Maven:-B -f/workspace/myProject/pom.xml -DdevelopmentVersion=0.0.34-SNAPSHOT -DreleaseVersion=0.0.33 -Dtag=v0.0.33 -U -DignoreSnapshots=true -Darguments=-Dpaypal。 buildid=${FUSION_BUILD_GENERATED} -DskipTests=false -Dmaven.javadoc.skip=true -Dresume=false 发布:准备发布:执行
还有
\"release_version\": \"$MVN_RELEASE_VERSION\"
他们都没有工作。
最佳答案
maven-release-plugin 从 pom.xml 中的 project.version
元素派生 releaseVersion。另请注意,-DreleaseVersion=0.0.33
将该值作为参数传递,因此不涉及您可以从插件外部使用的变量。
但是,如果您需要脚本中的发布版本,您可以使用
mvn help:evaluate -Dexpression=project.version -q -DforceStdout
根据您的版本架构,这将为您提供类似于 1.0.1-SNAPSHOT 的内容。您可以通过 cut -d- -f1
等 bash 命令删除 -SNAPSHOT。或者你运行类似
mvn release:prepare -DdryRun=true
这会为您提供一个名为 pom.xml.tag 的文件。这包含没有 -SNAPSHOT 的版本元素。使用上面的命令从 XML 文件中读取它。之后,您可以使用 mvn release:clean
关于maven - 访问 maven-release-plugin 的发布版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49418837/