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;
本文只是簡單的介紹了插件的基本配置,更多深入的用法,請查看項目代碼及使用文檔;
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
