Maven插件之git-commit-id-plugin
SCM使用GIT而非SVN时,使用Maven发布,总是会出一些莫名其妙的问题,google查找原因,无意中看到了这个插件;
对于该插件,到目前为止,文档比较少,尤其是中文的文档;全部的信息都包含在项目说明文件中了;项目地址:
https://github.com/ktoso/maven-git-commit-id-plugin
对于英语不好的我来说,看英语很痛苦,为了不让自己在同一个地方痛苦两次,尝试在此记录下该插件的使用及其配置,方便自己,也方便其他英语不好的同仁们;如有歧义,请以原版文档为主.
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>2.1.5</version>
<executions>
<execution>
<goals>
<goal>revision</goal>
</goals>
</execution>
</executions>
<configuration>
<!--日期格式;默认值:dd.MM.yyyy '@' HH:mm:ss z;-->
<dateFormat>yyyyMMddHHmmss</dateFormat>
<!--,构建过程中,是否打印详细信息;默认值:false;-->
<verbose>true</verbose>
<!-- ".git"文件路径;默认值:${project.basedir}/.git; -->
<dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
<!--若项目打包类型为pom,是否取消构建;默认值:true;-->
<skipPoms>false</skipPoms>
<!--是否生成"git.properties"文件;默认值:false;-->
<generateGitPropertiesFile>true</generateGitPropertiesFile>
<!--指定"git.properties"文件的存放路径(相对于${project.basedir}的一个路径);-->
<generateGitPropertiesFilename>git.properties</generateGitPropertiesFilename>
<!--".git"文件夹未找到时,构建是否失败;若设置true,则构建失败;若设置false,则跳过执行该目标;默认值:true;-->
<failOnNoGitDirectory>true</failOnNoGitDirectory> <!--git描述配置,可选;由JGit提供实现;-->
<gitDescribe>
<!--是否生成描述属性-->
<skip>false</skip>
<!--提交操作未发现tag时,仅打印提交操作ID,-->
<always>false</always>
<!--提交操作ID显式字符长度,最大值为:40;默认值:7;
0代表特殊意义;后面有解释;
-->
<abbrev>7</abbrev>
<!--构建触发时,代码有修改时(即"dirty state"),添加指定后缀;默认值:"";-->
<dirty>-dirty</dirty>
<!--always print using the "tag-commits_from_tag-g_commit_id-maybe_dirty" format, even if "on" a tag.
The distance will always be 0 if you're "on" the tag.
-->
<forceLongFormat>false</forceLongFormat>
</gitDescribe>
</configuration>
</plugin>
以上代码给出了插件的使用及属性使用,中文内容则是根据自己的理解翻译; 以下是从项目文档中翻译过来的属性解释:
configuration options depth
dotGitDirectory-(默认值:${project.basedir}/.git)".git"文件夹路径;在多模块项目中,可以使用以下写法得到上一级目录中的".git"文件夹:${project.basedir}/../.git;
prefix-(默认值:git)公开属性的命名空间,保持默认,无须指定;
dateFormat-(默认值:dd.MM.yyyy '@' HH:mm:ss z)是SimpleDateFormat类使用的格式化标准;用于格式化"git.build.time"和"git.commit.time";
verbose-(默认值:false)如果设置为true,则会打印出获取的所有属性信息;
generateGitPropertiesFile-(默认值:false)强制生成"git.properties"文件;
generateGitPropertiesFilename-(默认值:src/main/resources/git.properties)指定生成的属性文件的路径,相对于${project.basedir}来说;
skipPoms-(默认值:true)如果是pom类型项目,是否跳过执行;
failOnNoGitDirectory-(默认值:true)".git"文件夹未找到时,构建是否失败;若设置true,则构建失败;若设置false,则跳过执行该目标;
gitDescribe:Worth pointing out is, that git-commit-id tries to be 1-to-1 compatible with git's plain output, even though the describe functionality has been reimplemented manually using JGit (you don't have to have a git executable to use the plugin). So if you're familiar with git-describe, you probably can skip this section, as it just explains the same options that git provides.
abbrev-(默认值:7)打印的object id的长度;
典型输出的例子:v2.1.0-1-gf5cd254,where -1- means the number of commits away from the mentioned tag;"-gf5cd254"部分表示此次提交操作的ID的前7位字符(f5cd254),请注意,包含前缀"g"是为了说明它是一个commit id,它不是object id的一部分,这是git的一个默认行为;
abbrev=0是一个特殊情况.其隐藏了从"tag"到"object id"的部分,具体请参考项目文档;
dirty-(默认值:"")当有代码未提交时,执行此次操作,信息输出时添加后缀;"-"符号不会自动添加,建议设定该属性时添加"-"前缀,和commit ID区分开来;
tags-(默认值:false);
long-(默认值:false)如果当前提交是tag,git-describe默认只会输出tag名称;使用该属性可以强制格式化为指定格式.例如:tagname-0-gc0ffebabe,注意此处 -0-,如果不使用forceLongFormat模式,则输出为:tagname;
always-(默认值:true)如果不能发现tag,则此次提交会打印object id;
skip-(默认值:false)若没有在构建中使用"git-describe"信息,you can opt to be calculate it;
本文只是简单的介绍了插件的基本配置,更多深入的用法,请查看项目代码及使用文档;
Maven插件之git-commit-id-plugin的更多相关文章
- linux显示git commit id,同时解决insmod模块时版本不一致导致无法加载问题
linux内核默认会包含git的commit ID. 而linux的内核在insmod模块时,会对模块和内核本身的版本做严格的校验.在开发产品时,改动内核后,由于commit ID变更,会导致linu ...
- Maven 插件之 docker-maven-plugin 的使用
目录 docker-maven-plugin 介绍环境.软件准备Demo 示例 配置 DOCKER_HOST示例构建镜像 指定构建信息到 POM 中构建使用 Dockerfile 构建使用命令绑定 D ...
- maven项目配置findbugs插件 使用git钩子控制代码的提交
maven项目配置findbugs插件对代码进行静态检测 当发现代码有bug时,就不让用户commit代码到远程仓库里 没有bug时才可以commit到远程仓库中 (1)新建maven项目 ,配置fi ...
- Spring Boot的Maven插件Spring Boot Maven plugin详解
Spring Boot的Maven插件(Spring Boot Maven plugin)能够以Maven的方式为应用提供Spring Boot的支持,即为Spring Boot应用提供了执行Mave ...
- groovy入门(2-1)Groovy的Maven插件安装:Plugin execution not covered by lifecycle configuration
参考链接:http://www.cnblogs.com/rightmin/p/4945797.html 1.引入groovy的jar包 2.引入groovy编译插件 3.遇到问题 Plugin exe ...
- git rev-parse介绍;获取commit id
git rev-parse master^{commit} 是什么意思 显示master提交的SHA1值 if you want to make sure that the output actual ...
- git rev-list 按照时间来列出两个 commit id 之间的相差数
git rev-list 按照时间来列出两个 commit id 之间的相差数 git rev-list: Lists commit objects in reverse chronological ...
- 剑指架构师系列-持续集成之Maven+Nexus+Jenkins+git+Spring boot
1.Nexus与Maven 先说一下这个Maven是什么呢?大家都知道,Java社区发展的非常强大,封装各种功能的Jar包满天飞,那么如何才能方便的引入我们项目,为我所用呢?答案就是Maven,只需要 ...
- maven 插件之 AutoConfig 工具使用笔记
AutoConfig 是一款 maven 插件,主要用于 Maven 项目打包使用.在我们的工作中,会将自己写的代码打成 jar 包或者 war 包发布到各种环境上.一般地,不用的环境所使用的数据库. ...
随机推荐
- 《学习opencv》笔记——矩阵和图像处理——cvMinManLoc,cvMul,cvNot,cvNorm and cvNormalize
矩阵和图像的操作 (1)cvMinManLoc函数 其结构 void cvMinMaxLoc(//取出矩阵中最大最小值 const CvArr* arr,//目标矩阵 double* min_val, ...
- Swift - 触摸事件(点击,移动,抬起等)说明及用例
在iOS开发中,UIGestureRecognizer可以方便的响应处理手势事件. 而如果要想更精细的处理,我们还需要借助touchesBegan,touchesMoved,touchesEnded等 ...
- c/c++使用VS2013连接MySQL与ubuntu下c链接mysql
vs连接数据库事实上就是将mysql数据库.h头文件接口.lib链接文件和dll运行文件增加到项目中.以下是配置怎样增加. 转于http://www.cnblogs.com/justinzhang/a ...
- 阅读代码分析工具Understand 2.0试用
Understand 2.0是一款源码阅读分析软件,功能强大.试用过一段时间后,感觉相当不错,确实能够大大提高代码阅读效率. 因为Understand功能十分强大,本文不可能详尽地介绍它的全部功能,所 ...
- Bootstrap表格的使用
先定义前端table <table class="table table-striped table-bordered table-hover" id="expan ...
- Indy的评价
已经抛弃了indy,实在是不好,tcp在android下退出报错.我现在改用系统自带的httpclient.推荐RTC RTC带有一个tcp组件,不过处理方式跟indy不同,测试过,在android下 ...
- 第二章排错的工具:调试器Windbg(上)
感谢博主 http://book.51cto.com/art/200711/59731.htm <Windows用户态程序高效排错>第二章主要介绍用户态调试相关的知识和工具.本文主要讲了排 ...
- jQuery EasyUI API 中文文档 - 链接按钮(linkbutton)
<html> <head> <script src="jquery-easyui/jquery.min.js"></script> ...
- 修改Tabhost样式和字体大小和居中显示
有时候我们的tabhost并不需要贴图,所以这个时候就必须把文字居中显示和设置大小了,代码如下 setContentView(R.layout.home_vzo_tabhost); ...
- A Game of Thrones(17) - Bran
It seemed as though he had been falling for years. Fly, a voice whispered in the darkness, but Bran ...