git maven 发布_Maven Git发布
git maven 發布
在開始這篇文章之前,我需要指出我在去年才開始認真地與Git合作 。 不幸的是,我從事的許多項目仍在使用SVN或CVS,但現在我終于開始使用Git了 。
在過去的幾年中,我使用Maven Release Plugin完成了許多軟件發行。 我仍然記得我花了整整一個星期的時間才在我的一個項目中設置插件。 在大多數情況下,它都運行良好,但是如果出現問題,您可以花幾個小時來解決問題。 天哪,噩夢!
最近,我想對Git項目執行相同的操作,并且遇到了Maven JGit-Flow插件 ,我必須告訴你,這太棒了! 設置非常容易,并且在第一次嘗試時就可以完美地工作!
該插件基于Vincent Driessen在A成功的Git分支模型一 文中描述的開發模型。 花點時間閱讀它,因為它非常有趣。
我將向您展示如何使用此插件進行發布。 我將使用有關Spring Batch的最新文章中的項目作為Wildfly Module 。
建立
設置非常簡單,只需將以下內容添加到pom.xml :
om-jgitflow-maven-plugin.xml
<plugin><groupId>external.atlassian.jgitflow</groupId><artifactId>jgitflow-maven-plugin</artifactId><version>1.0-m3</version><configuration><noDeploy>true</noDeploy></configuration> </plugin>我剛剛添加了noDeploy配置,因為我沒有發布到Maven存儲庫。 而已!
釋放
讓我們看看我的項目分支和版本:
分行
radcortez:wildfly-spring-batch radcortez$ git branch -avv * master 0b2364b [origin/master] Added documentation.remotes/origin/master 0b2364b Added documentation. radcortez:wildfly-spring-batch radcortez$ mvn help:evaluate -Dexpression=project.version [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building wildfly-spring-batch 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-help-plugin:2.2:evaluate (default-cli) @ wildfly-spring-batch --- [INFO] No artifact parameter specified, using 'com.cortez.wildfly.batch:wildfly-spring-batch:war:1.0-SNAPSHOT' as project. [INFO] 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------現在,只需運行mvn jgitflow:release-start :
發布準備
radcortez:wildfly-spring-batch radcortez$ mvn jgitflow:release-start [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building wildfly-spring-batch 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- jgitflow-maven-plugin:1.0-m3:release-start (default-cli) @ wildfly-spring-batch --- [INFO] ensuring origin exists... [INFO] (develop) Checking for SNAPSHOT version in projects... [INFO] (develop) Checking dependencies and plugins for snapshots ... What is the release version for "wildfly-spring-batch"? (com.cortez.wildfly.batch:wildfly-spring-batch) [1.0]: [INFO] ensuring origin exists... [INFO] (release/1.0) adding snapshot to pom versions... [INFO] (release/1.0) updating poms for all projects... [INFO] turn on debug logging with -X to see exact changes [INFO] (release/1.0) updating pom for wildfly-spring-batch... What is the development version for "wildfly-spring-batch"? (com.cortez.wildfly.batch:wildfly-spring-batch) [1.1-SNAPSHOT]: [INFO] (develop) updating poms with next development version... [INFO] (develop) updating poms for all projects... [INFO] turn on debug logging with -X to see exact changes [INFO] (develop) updating pom for wildfly-spring-batch... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------您將獲得一個交互式菜單,以選擇要發布的版本號,方法與Maven Release Plugin相同。 我開發的master分支,但在這個過程中release分支與發行版本和創建development分支與新開發版本。
發行準備分支
radcortez:wildfly-spring-batch radcortez$ git branch -avvdevelop 728856a [origin/develop] updating poms for 1.1-SNAPSHOT developmentmaster 0b2364b [origin/master] Added documentation. * release/1.0 9f88a42 updating poms for branch '1.0' with snapshot versionsremotes/origin/master 0b2364b Added documentation.現在,這很酷的事情是,一切仍在您的本地環境中! 如果您對更改不滿意,則可以擺脫分支并重新開始。 此時未執行構建。
如果要發布,只需運行mvn jgitflow:release-finish :
釋放完成
radcortez:wildfly-spring-batch radcortez$ mvn jgitflow:release-finish [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building wildfly-spring-batch 1.0 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- jgitflow-maven-plugin:1.0-m3:release-finish (default-cli) @ wildfly-spring-batch --- [INFO] ensuring origin exists... [INFO] running jgitflow release finish... [INFO] ensuring origin exists... [INFO] (release/1.0) Updating poms for RELEASE [INFO] (release/1.0) removing snapshot from pom versions... [INFO] (release/1.0) updating poms for all projects... [INFO] turn on debug logging with -X to see exact changes [INFO] (release/1.0) updating pom for wildfly-spring-batch... [INFO] (release/1.0) Checking for RELEASE version in projects... [INFO] (release/1.0) Checking dependencies and plugins for snapshots ...[INFO] Scanning for projects...[INFO][INFO] ------------------------------------------------------------------------[INFO] Building wildfly-spring-batch 1.0在此步驟中,將按照A成功的Git分支模型中所述合并release分支并創建標簽。 記住,什么都沒有推送,所以您可以隨時還原該過程。
現在讓我們看一下分支和標簽:
分支標簽
radcortez:wildfly-spring-batch radcortez$ git branch -avv * develop a8e762b [origin/develop] Updating develop poms back to pre merge statemaster b6fbda0 [origin/master: ahead 3] Merge branch 'release/1.0'remotes/origin/master 0b2364b Added documentation. radcortez:wildfly-spring-batch radcortez$ git tag 1.0現在,您可以輕松完成發行,并準備繼續在新的更新development分支中進行development 。 那有多容易?
結論
研究原始發行插件和jgitflow之間的一些區別:
- 您不必擔心階段提交。 一切都是本地的,直到您推送。
- 在此過程中,其他人更改pom.xml不再有問題。
- 您的項目僅構建一次,從而節省了發布時間。
- 設置非常容易。 一切都從您的Git配置中選取。
當我調查/撰寫文章時,我發現了這篇非常有趣的文章,關于執行發布的另一種方法。 值得閱讀: Axel Fontaine的 http://axelfontaine.com/blog/final-nail.html 。
翻譯自: https://www.javacodegeeks.com/2014/08/maven-git-release.html
git maven 發布
總結
以上是生活随笔為你收集整理的git maven 发布_Maven Git发布的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Win7宽带连接错误代码720(win7
- 下一篇: 半夜鸡叫周扒皮的故事(睡前故事半夜鸡叫完
