作者:Q_jack | 来源:互联网 | 2023-10-10 16:17
通过Jenkins构建发布springboot项目时,常常有需求,需要把Svn的版本号更新到项目的版本上,通过有两种解决方案:1. 通过shell命令对配置文件中的指定字符进行替换
通过Jenkins构建发布spring boot项目时,常常有需求,需要把Svn的版本号更新到项目的版本上,通过有两种解决方案:
1. 通过shell命令对配置文件中的指定字符进行替换,
如:
配置文件
app-config:
isDev: 1
version: 10.0.dev.312
shell命令
sed -i "s/dev/$BUILD_NUMBER/g" src/main/resources/application.properties
2.使用spring boot插件在构建compile时,对版本号的指定字符进行自动替换:
application.yml
app-config:
version: 10.0.${prefix.revision}.312
POM文件添加plugin:
<plugin>
<groupId>com.google.code.maven-svn-revision-number-plugingroupId>
<artifactId>maven-svn-revision-number-pluginartifactId>
<version>1.7version>
<configuration>
<verbose>trueverbose>
<entries>
<entry>
<prefix>prefixprefix>
<depth>emptydepth>
entry>
entries>
configuration>
<executions>
<execution>
<phase>validatephase>
<goals>
<goal>revisiongoal>
goals>
execution>
executions>
<dependencies>
<dependency>
<groupId>org.tmatesoft.svnkitgroupId>
<artifactId>svnkitartifactId>
<version>1.8.5version>
dependency>
dependencies>
plugin>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-resources-pluginartifactId>
<executions>
<execution>
<id>default-resourcesid>
<phase>generate-resourcesphase>
<goals>
<goal>copy-resourcesgoal>
goals>
<configuration>
<outputDirectory>target/classesoutputDirectory>
<useDefaultDelimiters>trueuseDefaultDelimiters>
<resources>
<resource>
<directory>src/main/resourcesdirectory>
<filtering>truefiltering>
resource>
resources>
configuration>
execution>
executions>
plugin>
点击compile:
注:通常开发时,是不需要进行compile的,所以,为避免debug出错,可以添加application-dev.yml文件
app-config:
version: 10.0.dev.312
在target文件夹生成的application.yml可以看到版本号已经改为svn号了。