Java 如何在UI上使用TFS将构建版本注入pom.xml?
我有一个TFS构建定义,它处理用Maven构建的JavaSpring后端应用程序。我有一个名为“Maven pom.xml”的构建步骤,显然可以在其中设置pom.xml的一些选项 我需要在构建时使用TFS更改pom.xml中的“version”标记,以便执行器中的“info”端点提供正确的版本号,包括TFS构建号 1) 使用TFS UI是否可以实现这一点?Java 如何在UI上使用TFS将构建版本注入pom.xml?,java,maven,tfs,build,pom.xml,Java,Maven,Tfs,Build,Pom.xml,我有一个TFS构建定义,它处理用Maven构建的JavaSpring后端应用程序。我有一个名为“Maven pom.xml”的构建步骤,显然可以在其中设置pom.xml的一些选项 我需要在构建时使用TFS更改pom.xml中的“version”标记,以便执行器中的“info”端点提供正确的版本号,包括TFS构建号 1) 使用TFS UI是否可以实现这一点? 2) 如果是,我是否应该更改“选项”文本框内容或“MAVEN_OPTS”以及如何在那里输入参数,pom.xml中的更改是无法通过“MAVE
2) 如果是,我是否应该更改“选项”文本框内容或“MAVEN_OPTS”以及如何在那里输入参数,pom.xml中的更改是无法通过“MAVEN”构建任务实现的。但还有其他一些方法可以做到这一点。例如,您可以使用一些构建任务,如或,将pom.xml中的值替换为构建版本。或者,您可以在生成定义中添加Powershell脚本任务以更新pom.xml。是的,这是可能的。遵循以下步骤: 1) 在maven构建任务之前创建另一个maven构建步骤,目标是“打包” 2) 将“目标”设置为:
[VersionInformation]
可以是表示所需版本的任何字符串。您可以在这里使用TFS变量。此字符串的示例可能是:2.3.5.$(Build.BuildNumber)-RELEASE,因此您的版本目标:set maven Build任务如下所示:
versions:set -DnewVersion=2.3.5.$(Build.BuildNumber)-RELEASE -DskipTests
保存您的更改。这样,/target/classes/META-INF文件夹下的build-info.properties文件将包含您的版本号,该版本号将通过“info”执行器提供
3) 如果需要将生成输出复制到其他位置,请确保也复制META-INF文件夹。如果您当前的复制步骤没有将该文件夹复制到最终放置位置
a。在生成步骤之后创建“复制文件”生成步骤
b。将“$(build.sourcesdirectory)/target/classes/META-INF
”写入“源文件夹”文本框
c。将*写入内容文本框。这将复制META-INF中的所有文件,以防万一
d。将“/classes/META-INF”附加到目标文件夹文本框中的正常放置位置,以便将META-INF文件复制到正确的位置
e。保存您的更改
这样,生成定义将正确设置版本信息,并将必要的文件复制到放置位置。要访问您的版本信息,请使用您的“信息”执行器端点。我相信它可以,如果我证明它是可行的,我将发布一个解决方案。我想知道它的缺点是什么。
versions:set -DnewVersion=2.3.5.$(Build.BuildNumber)-RELEASE -DskipTests