电子商务网站建设的技术综述,网站主流服务器语言,wordpress 文章 新窗口打开,网站设计中下拉列表怎么做git maven 发布在开始这篇文章之前#xff0c;我需要指出我在去年才开始认真地与Git合作 。 不幸的是#xff0c;我从事的许多项目仍在使用SVN或CVS#xff0c;但现在我终于开始使用Git了 。 在过去的几年中#xff0c;我使用Maven Release Plugin完成了许多软件发行。 我… 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 plugingroupIdexternal.atlassian.jgitflow/groupIdartifactIdjgitflow-maven-plugin/artifactIdversion1.0-m3/versionconfigurationnoDeploytrue/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 -Dexpressionproject.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.0remotes/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.htmlgit maven 发布