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 发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340783.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python界面长什么样图片_python界面是什么样的

安装完Python&#xff0c;在命令行输入“python”之后&#xff0c;如果成功&#xff0c;会得到类似于下面的窗口&#xff1a;可以看到&#xff0c;结尾有3个>符号&#xff08;>>>&#xff09;。>>>被叫做Python命令提示符&#xff08;prompt&#xff09;&…

php static 访问,使用PHP访问Static方法的最佳方法

这是我的课堂财产private $my_paths array(imagemagick > E:\Server\_ImageOptimize\ImageMagick,pngcrush > E:\Server\_ImageOptimize\pngCrush\pngcrush.exe,jpegtran > E:\Server\_ImageOptimize\jpegtran\jpegtran.exe,gifsicle > E:\Server\_ImageOptimize\…

python表格控件_python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例...

PyQt5表格控件QTableView简介 在通常情况下&#xff0c;一个应用需要和一批数据进行交互&#xff0c;然后以表格的形式输出这些信息&#xff0c;这时就需要用到QTableView类了&#xff0c;在QTableView中可以使用自定义的数据模型来显示内容&#xff0c;通过setModel来绑定数据…

Java:Speedment 3.2的发布–现在启用轻量级数据库微服务

几种传统的ORM不能完全遵循Java模块封装&#xff08;JPMS&#xff09;。 这通常意味着在部署微服务时会使用很多不必要的文件和类。 最新的主要版本3.2的开源 Speedance通过引入模块系统支持来解决此问题&#xff0c;该模块支持对云应用程序进行有效部署并提供更严格的API。 …

Linux文件系统为,浅析Linux文件系统

原标题&#xff1a;浅析Linux文件系统一、文件系统层次分析由上而下主要分为用户层、VFS层、文件系统层、缓存层、块设备层、磁盘驱动层、磁盘物理层用户层最上面用户层就是我们日常使用的各种程序&#xff0c;需要的接口主要是文件的创建、删除、打开、关闭、写、读等。VFS层我…

求解出n以内所有能被5整除的正整数的乘积_所有最常见最经典的算法题都在这里了...

1、一群猴子排成一圈&#xff0c;按1&#xff0c;2&#xff0c;…&#xff0c;n依次编号。然后从第1只开始数&#xff0c;数到第m只,把它踢出圈&#xff0c;从它后面再开始数&#xff0c;再数到第m只&#xff0c;在把它踢出去…&#xff0c;如此不停的进行下去&#xff0c;直到…

怎样使set现程变得安全_使不安全变得更加安全

怎样使set现程变得安全总览 如果直接使用Unsafe&#xff0c;则可能会导致JVM崩溃。 当您访问尚未映射的内存页面并且在Unix上的结果是SIGSEG&#xff08;如果访问页面0&#xff09;或SIGBUS&#xff08;如果您访问另一个未映射的页面&#xff09;时&#xff0c;会发生这种情况。…

linux lvm 系统快照,系统运维|在 LVM中 录制逻辑卷快照并恢复(第三部分)

LVM快照是以空间换时间时间的方式制作的lvm卷副本。它只在lvm中工作&#xff0c;并只在源逻辑卷发生改变时占用快照卷的空间。如果源卷的变化达到1GB这么大&#xff0c;快照卷同样也会产生这样大的改变。因而&#xff0c;对于空间有效利用的最佳途径&#xff0c;就是总是进行小…

Spring Annotations我从没有机会使用第2部分:@ConfigurationProperties

几天前&#xff0c;我在检查其他内容时不小心偶然发现了Spring Boot项目中的Spring注释。 我们都知道如何将带有“ Value”的属性值绑定到类&#xff0c;并且我们都知道如果要绑定多个属性&#xff0c;这可能会很麻烦。 Spring Boot可以为您提供帮助。 您可以使用“ Configura…

python语言变量随时声明_2. Go语言五种变量创建的方法

对于只有 Python 语言经验的朋友&#xff0c;也许会不太理解声明这个词&#xff0c;在 Python 中直接拿来就用&#xff0c;也不用声明类型啥的。 Go 语言是静态类型语言&#xff0c;由于编译时&#xff0c;编译器会检查变量的类型&#xff0c;所以要求所有的变量都要有明确的类…

linux netty udp服务端,Netty实现UDP服务端

### 前言在之前的文章我已经讲过了利用Netty实现UDP客户端&#xff0c;大家有兴趣的话&#xff0c;可以参看下面文章&#xff1a;[Netty实现UDP客户端](https://www.jianshu.com/p/5dbc6b3c9d94)今天就让我们来学习下利用Netty实现UDP服务端吧&#xff0c;这里我经过整合封装&a…

会java需要多久能学会python_java好学吗?零基础学java要多久?

java好学吗&#xff1f;零基础学java要多久&#xff1f; 时间&#xff1a;2019-05-21 来源&#xff1a;华清远见 2019年3月&#xff0c;tiOBE 公布了编程语言排行榜&#xff0c;正如官方所说&#xff0c;本月的排名几乎没有任何有趣的变化&#xff0c;排名前十的依然是&…

linux memcached 运行,linux下查看Memcached运行状态

查看Memcached运行状态的命令是&#xff1a;echo stats | nc 127.0.0.1 11211 查看memcached状态的基本命令&#xff0c;通过这个命令可以看到如下信息&#xff1a; STAT pid 22459 进程ID STAT uptime 1027046 服务器运行秒数 STAT time 1273043062 服务器当前unix时间戳 STAT…

jboss架构_检查Red Hat JBoss BRMS部署架构的规则和事件(第二部分)

jboss架构&#xff08;文章来宾与北美红帽公司高级中间件顾问约翰赫洛克 &#xff08; John Hurlocker&#xff09;合着&#xff09; 在这周的技巧中&#xff0c;我们将放慢速度&#xff0c;并仔细研究可能的Red Hat JBoss BRMS部署体系结构。 在谈论部署体系结构时&#xff…

linux 关于休眠得脚本,linux – 如果条件为true,请将cron作业休眠5分钟

你有两个选择来获得这个.通常,cron与前一个作业实例是否仍在运行无关.选项1&#xff1a;在脚本的开头写一个锁文件,并在完成后将其删除.然后在脚本开头检查文件是否存在,如果是,则脚本结束而不做任何事情.例如,这可能是这样的&#xff1a;# if the file exists (-e) end the sc…

TestNG中的参数化– DataProvider和TestNG XML(带有示例)

测试自动化&#xff0c;或所谓的自动化测试&#xff0c;并不像听起来那样容易。 必须考虑所有可能的用户交互的所有排列和组合&#xff0c;并且在此基础上&#xff0c;您将必须创建测试脚本以通过多种浏览器和OS组合来验证Web应用程序。 这就是参数化在Selenium自动化测试中起关…

java与python多态的区别_如果未调用父构造函数(与Java不同),多态性在Python中如何工作? - java...

因此&#xff0c;父类构造函数是在Java中调用的&#xff0c;而在Python中则不是。如果这意味着未创建父对象&#xff0c;那么如何在Python中成功调用def function-这是怎么回事&#xff1f; Python代码 class Parent: def __new__(self): print(f"I am the real parent co…

linux中统计java数量,linux 统计当前目录下文件数

查看当前目录下文件的个数ls -l | grep "^-" | wc -l查看当前目录下文件的个数&#xff0c;包括子目录里的。ls -lR| grep "^-" | wc -l查看某目录下文件夹(目录)的个数&#xff0c;包括子目录里的。ls -lR| grep "^d" | wc -l某目录下以.js结尾…

zbrush 添加纹理贴图_想学习3D游戏模型,3Dmax、MAYA和ZBrush都需要掌握吗?

想从事游戏行业的建模的话&#xff0c;模型和贴图的知识都得学&#xff0c;MAYA和3DMAX只能说是基本要学的&#xff0c;Zbrush能够提升个人价值&#xff0c;之后能给你建好的模型做出好看的贴图&#xff0c;才能算是一个游戏建模方面能干活的合格从业人员。新手入门的话&#x…

linux 连接wifi不稳定,rtl8188ce 无线网不稳定终极解决方案 - 哆啦比猫的技术瞎扯 - Arch Linux · ドラえもん · 实时绘制...

先容我废话据说 realtek 的无线网卡就这个系列问题多多。以前连接不太稳定&#xff0c;但不会频繁掉线就凑活用了。自从不知哪次升级以来&#xff0c;掉线越来越频繁&#xff0c;最后已经发展到 10秒必掉 了&#xff0c;以至于要上网就得拼命到终端里重连网络。网上也有各种解决…