maven子项目传git_Maven Git发布

maven子项目传git

maven子项目传git

我需要在开始这篇文章时指出我在去年才开始认真地与Git合作。 不幸的是,我从事的许多项目仍在使用SVN或CVS,但是现在我终于开始使用Git了

在过去的几年中,我使用Maven Release Plugin完成了许多软件发行。 我仍然记得我花了整整一个星期的时间才在我的一个项目中设置插件。 在大多数情况下,它都运行良好,但是如果出现问题,则可以花几个小时来解决问题。 天哪,噩梦!

最近,我想对Git项目执行相同的操作,并且遇到了Maven JGit-Flow插件,我必须告诉你,这太棒了! 设置非常容易,并且在第一次尝试时就可以完美地工作!

该插件基于Vincent DriessenA成功的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 -avv
  develop               728856a [origin/develop] updating poms for 1.1-SNAPSHOT development
  master                0b2364b [origin/master] Added documentation.
* release/1.0           9f88a42 updating poms for branch '1.0' with snapshot versions
  remotes/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 state
  master                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

maven子项目传git

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值