连续交付友好的Maven版本

持续交付管道需要可预测的软件和依赖版本。 Maven软件项目中常见的快照版本与“持续交付”背后的动机背道而驰。

为了将快照版本更新为发行版本,开发人员通常手动或通过诸如maven-release-plugin来编辑pom.xml文件。 但是,Maven还提供了将版本号定义为属性的可能性,这更适合持续交付世界。

它可以使用占位符,如${revision}为神器版本,描述在这里 。 因此,我们可以定义一个包含语义版本的版本,该语义版本包括CI服务器的内部版本号作为元数据:

<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.sebastian-daschner</groupId><artifactId>hello-world</artifactId><version>${revision}</version>...<properties><!-- will be overridden in CD pipeline --><buildNumber>local</buildNumber><revision>1.0.0+${buildNumber}</revision>...</properties>
</project>

为了发布不会在任何环境上发布的本地版本,我们照常调用mvn clean package 。 这将导致工件版本1.0.0+local

持续集成服务器将调用Maven构建,类似于: mvn clean package -DbuildNumber=b${buildNumber} -使用从当前管道构建中获取的构建号。 这将导致工件版本1.0.0+b123 1.0.0+b124等。 设置相同的属性是为了mvn deploy工件mvn deploy到存储库。

此方法可方便地为本地构建指定可预测的版本和后备版本。 请务必注意,语义版本1.0.0仅应由开发人员更改,因为它反映了API更改的性质和兼容性。

发现帖子有用吗? 订阅我的时事通讯,获取有关IT和Java的更多免费内容,技巧和窍门:

成功! 现在检查您的电子邮件以确认您的订阅。

翻译自: https://www.javacodegeeks.com/2017/12/continuous-delivery-friendly-maven-versions.html

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

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

相关文章

android u盘检测工具,android USBU盘 接入检测

如果是在注册的静态广播一般必须含有以上的权限&#xff0c;这里必须注意添加如果在代码中注册广播则必须iFilter.addDataScheme("file")这样接受广播判断U盘public class RemovableDiskManagerReceiver extends BroadcastReceiver {public RemovableDiskManagerRece…

android 组合属性动画,Android属性动画组合(sequence串行、together并行)

在android中用原生api实现一系列复杂动画会很麻烦&#xff0c;所以对属性动画进行了一定封装&#xff0c;让使用起来更简单&#xff0c;能够按照人的思维依次编写动画。简单效果&#xff1a;使用方法&#xff1a;添加依赖&#xff1a;dependencies { compile"com.steven:A…

jta atomikos_带有Atomikos示例的Tomcat中的Spring JTA多个资源事务

jta atomikos在本教程中&#xff0c;我们将向您展示如何使用Atomikos Transaction Manager在Tomcat服务器中实现JTA多个资源事务。 Atomicos事务管理器为分布式事务提供支持。 这些是多阶段事务&#xff0c;通常使用多个数据库&#xff0c;必须以协调的方式提交。 分布式事务由…

android 音量键 广播,【Android 7.0 Audio】: 按键调节音量的调用过程

转载自http://blog..net/xiashaohua/article/details/53842337只简单描述调用过程&#xff0c;需对照代码看&#xff0c;不画图了&#xff0c;也不贴代码)1.在key Event处理部分&#xff0c;Phonewindow会捕获到音量按键事件&#xff0c;Phonewindow.onkeydown--MediaSessionLe…

台电+android+电话,通话系统_台电 G17s_平板电脑评测-中关村在线

通话系统将两张联通3G的SIM卡插入台电G17s之后&#xff0c;我们来感受一下它通话系统的使用是否令人满意。和一般的双卡Android手机平板一样&#xff0c;该机也不支持热插拔&#xff0c;需要将机器彻底关闭后插入SIM卡再开机。并且在开机后屏幕会弹出SIM卡信息&#xff0c;并询…

在Payara Server和GlassFish中配置密码

回答Stackoverflow问题可以为我发现我最喜欢的开源工具的正式文档中的空白提供很好的反馈。 我在这里回答的问题之一是如何在docker容器中更改Payara Server主密码 。 显然&#xff0c;在标准服务器安装中&#xff0c;这很简单–只需使用asadmin change-master-password命令&am…

功能Java示例 第2部分–讲故事

这是称为“ Functional Java by Example”的系列文章的第2部分。 我在本系列的每个部分中发展的示例是某种“提要处理程序”&#xff0c;用于处理文档。 在上一部分中&#xff0c;我从一些原始代码开始&#xff0c;并应用了一些重构来描述“什么”而不是“如何”。 为了帮助代…

OpenHub框架–下一个有趣的功能

这是有关OpenHub框架的系列文章中的第三篇&#xff0c;第一篇介绍OpenHub框架 &#xff0c;第二篇介绍异步消息传递模型 。 该系列的最后一篇文章将更详细地介绍其他一些有趣的功能&#xff0c;并说明为什么OpenHub可以成为您的集成项目的理想选择的原因。 节流 节流是一种功…

tcga癌症亚型获取_将亚型多态性与通用多态性相关联的危险

tcga癌症亚型获取Java 5已将通用多态性引入Java生态系统。 即使我们都知道由于泛型类型擦除及其后果而引起的无数警告&#xff0c;这还是对Java语言的重要补充。 通用多态性&#xff08;也称为参数多态性 &#xff09;通常与可能预先存在的亚型多态性正交。 一个简单的例子是co…

在生产中运行Java:SRE的观点

作为站点可靠性工程师 &#xff08;SRE&#xff09;&#xff0c;我确保我们的生产服务高效&#xff0c;可扩展且可靠。 典型的SRE是生产大师&#xff0c;必须对更广泛的体系结构有很好的了解&#xff0c;并精通许多更精细的细节。 SRE是会说多种语言的程序员&#xff0c;这是很…

android 退出多个activity,Android 中 退出多个activity的经典方法

1.使用list集合方式用list保存activity实例&#xff0c;然后逐一干掉import java.util.linkedlist;import java.util.list;import android.app.activity;import android.app.alertdialog;import android.app.application;import android.content.dialoginterface;import androi…

声明jpa批注处理器_如何使用反射基于JPA批注记录您的数据模型

声明jpa批注处理器因此&#xff0c;当您仅可以注释Java类时&#xff0c;使用JPA&#xff0c;Hibernate或EBeans很酷&#xff0c;但是您不是一直希望可以从代码“生成”数据模型的文档吗&#xff1f; 提取JPA / Hibernate和其他验证注释的信息&#xff1f; 假设您的bean中具有所…

在Grails战争中添加“精简” Groovy Web控制台

假设您已将Grails应用程序部署到服务器上–如何查找应用程序的配置方式&#xff1f; 如果您有来源&#xff0c;则可以查看Config.groovy &#xff0c; BuildConfig.groovy等&#xff08;在这种情况下&#xff0c;我正在谈论Grails 2应用程序&#xff0c;但是这些想法可以推广到…

ubuntu生成密钥和证书_基于浏览器的密钥生成以及与浏览器的密钥/证书存储的交互...

ubuntu生成密钥和证书想象以下情况&#xff1a; 您需要从访问您的网站的用户那里获取一个密钥&#xff08;在非对称情况下为用户的公共密钥 &#xff09;&#xff0c;并希望浏览器记住私有部分&#xff0c;而不会因冗长的导入过程而困扰用户。 老实说&#xff0c;实际上&#…

JPA persistence.xml SQL脚本定义

您可以在将在运行时执行的JPA持久性上下文定义中定义并链接到SQL脚本。 有标准化的属性来定义脚本&#xff0c;以分别说明如何创建模式&#xff0c;批量加载数据和删除模式&#xff1a; <persistence version"2.1" xmlns"http://xmlns.jcp.org/xml/ns/persi…

如何使用JPA和Hibernate映射JSON集合

介绍 开源的hibernate-types项目允许您将Java对象或Jackson JsonNode为JPA实体属性。 最近&#xff0c;感谢我们的杰出贡献者&#xff0c;我们添加了对类型安全集合的支持&#xff0c;该集合也可以作为JSON持久化。 在本文中&#xff0c;您将了解如何实现此目标。 Maven依赖 …

android listview mapview,RelativeLayout和并列ListView/MapView

我尝试使用RelativeLayout并排放置ListView和MapView。然而我的MapView总是高于ListView。RelativeLayout和并列ListView/MapView这里是我的main.xml布局&#xff1a;android:orientation"vertical"android:layout_width"fill_parent"android:layout_heigh…

android数据流分类,【Android工程之类】1 MVVM架构 - MVVM与单向数据流

前言这个系列将讲述使用MVVM架构、LiveData、Room、Kodein、Retrofit、EventBus来建立一个统一的、优雅的、可维护的TODO程序&#xff0c;本系列分为多个章节&#xff0c;从0开始一步一步引入这些优秀的库。下图展示的是Jetpack组件库包含的内容&#xff0c;这套的架构方案的核…

java ssl证书_Java安全教程–创建SSL连接和证书的分步指南

java ssl证书在有关应用JEE安全性的系列文章中&#xff0c;我们为您提供了另一个有关如何在Java EE应用程序中创建SSL连接和创建证书的详细教程。 如我们之前的文章中所述&#xff0c; 安全套接字层&#xff08;SSL&#xff09;/传输层安全性&#xff08;TLS&#xff09;将启用…

android运行的线程中,android中线程是否运行在单独的进程中?

android sdk中的描述Caution:Aservice runs in the main thread of its hosting process—the servicedoesnotcreateits own thread anddoesnotrunin a separate process (unless you specify otherwise). This meansthat, if your service is going to do any CPU intensive w…