Skip to content

如何基于Git插件自动创建版本号

HaojunRen edited this page May 31, 2024 · 5 revisions

通过集成插件git-commit-id-plugin,通过产生git信息文件的方式,获取{git.commit.time}-{git.total.commit.count}(日期 + Git提交次数)或者{git.build.version}(对应到Maven工程的版本)来自动创建版本号,这样就可以避免使用者手工维护版本号

注意事项

当两者都启用的时候,手工配置的版本号优先级要高于Git插件方式的版本号

增加Git编译插件

<plugin>
    <groupId>pl.project13.maven</groupId>
    <artifactId>git-commit-id-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>revision</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <!-- 必须配置,并指定为true -->
        <generateGitPropertiesFile>true</generateGitPropertiesFile>
        <!-- 指定日期格式 -->
        <dateFormat>yyyyMMdd</dateFormat>
        <!-- <dateFormat>yyyy-MM-dd-HH:mm:ss</dateFormat> -->
    </configuration>
</plugin>

配置项

增加配置项

# 开启和关闭使用Git信息中的字段单个或者多个组合来作为服务版本号。缺失则默认为false
spring.application.git.generator.enabled=true
# 使用Git信息中的字段单个或者多个组合来作为服务版本号。缺失则默认为{git.commit.time}-{git.total.commit.count}
# 日期 + Git提交次数的版本号格式
spring.application.git.version.key={git.commit.time}-{git.total.commit.count}
# POM版本号格式
# spring.application.git.version.key={git.build.version}

下面是可供选择的Git字段,比较实际意义的字段为git.commit.id,git.commit.id.abbrev,git.build.version,git.commit.time,git.total.commit.count

git.branch=master
git.build.host=Nepxion
git.build.time=2019-10-21-10\:07\:41
[email protected]
git.build.user.name=Nepxion
git.build.version=1.0.0
git.closest.tag.commit.count=
git.closest.tag.name=
git.commit.id=04d7e45b11b975db37bdcdbc5a97c02e9d80e5fa
git.commit.id.abbrev=04d7e45
git.commit.id.describe=04d7e45-dirty
git.commit.id.describe-short=04d7e45-dirty
git.commit.message.full=\u4FEE\u6539\u914D\u7F6E
git.commit.message.short=\u4FEE\u6539\u914D\u7F6E
git.commit.time=2019-10-21T09\:09\:25+0800
[email protected]
git.commit.user.name=Nepxion
git.dirty=true
git.local.branch.ahead=0
git.local.branch.behind=0
git.remote.origin.url=https\://github.com/Nepxion/DiscoveryGuide.git
git.tags=
git.total.commit.count=765

最佳实践

框架内置{git.commit.time}-{git.total.commit.count}的格式作为版本号

该配置的含义:服务的版本号为最后一次提交日期+总提交次数,来保证版本号唯一性,例如,2019-10-21-567




2017-2050 ©Nepxion Studio Apache License

           

Total visits

讲义篇

集成篇

概念篇

实践篇

功能篇

配置篇

扩展篇

测试篇

升级篇

贡献篇

Clone this wiki locally