Maven 之 SNAPSHOT 和 release -----进阶_生产环境 代码是snapshot 指向release库-程序员宅基地

技术标签: maven  

转自:本文来源于铁木箱子的博客http://www.mzone.cc



这里要介绍的是如何在项目中应用snapshot和release库,应用snapshot和release库达到不同环境下发布不同的版本的目的,首先看一个pom文件的定义:

复制代码
<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>cc.mzone</groupId>
    <artifactId>myjar</artifactId>
    <version>${project.release.version}</version>
    <packaging>jar</packaging>
 
    <distributionManagement>
        <repository>
        <id>mzone-release</id>
        <url>http://192.168.1.88/nexus/content/repositories/mzone-release</url>
        </repository>
        <snapshotRepository>
        <id>mzone-snapshot</id>
        <url>http://192.168.1.88/nexus/content/repositories/mzone-snapshot</url>
        </snapshotRepository>
    </distributionManagement>
 
    <properties>
        <project.release.version>0.1-SNAPSHOT</project.release.version>
    </properties>
 
    <profiles>
        <profile>
            <id>product</id>
        <properties>
             <project.release.version>0.1</project.release.version>
        </properties>
        </profile>
    </profiles>
</project>
复制代码

      首先我们看到pom文件中version的定义是采用占位符的形式,这样的好处是可以根据不同的profile来替换版本信息,比如maven默认是使用0.1-SNAPSHOT作为该模块的版本。

1、如果在发布时使用mvn deploy -P product的命令,那么会自动使用0.1作为发布版本,那么根据maven处理snapshot和release的规则,由于版本号后不带-SNAPSHOT故当成是正式发布版本,会被发布到release仓库;

2、如果发布时使用mvn deploy命令,那么就会使用默认的版本号0.1-SNAPSHOT,此时maven会认为是快照版本,会自动发布到快照版本库。

      在distributionManagement段中配置的是snapshot快照库和release发布库的地址,我这里是采用nexus作为镜像服务器。对于版本库主要是id和url的配置,配置完成后就可以通过mvn deploy进行发布了,当然了,如果你的镜像服务器需要用户名和密码,那么还需要在maven的settings.xml文件中做如下配置:

复制代码
<servers>
    <server>
        <id>mzone-release</id>
        <username>deployment</username>
        <password>deployment</password>
    </server>
    <server>
        <id>mzone-snapshot</id>
        <username>deployment</username>
        <password>deployment</password>
    </server>
</servers>
复制代码

      注意这里配置的server的id必须和pom文件中的distributionManagement对应仓库的id保持一致,maven在处理发布时会根据id查找用户名称和密码进行登录和文件的上传发布。

      我们这里通过profile的定义就可以在发布灵活切换snapshot快照版本和release正式版本了,在被依赖的组件中也可以使用profile来定义在开发阶段使用快照库,在发布阶段使用正式库的功能,只需要在不同的profile中覆盖默认的properties属性值即可
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36630761/article/details/74529134

智能推荐

Tomcat安装及配置教程(保姆级)【最新史上最全版】-程序员宅基地

文章浏览阅读10w+次,点赞193次,收藏947次。Tomcat安装及配置教程(保姆级)【最新史上最全版】tomcat保姆级安装教程Tomcat安装教程(以tomcat-9.0.62为例:)1.下载安装包可以从官网下载安装包:(1)从官网下载输入网址进入官网sshttp://tomcat.apache.org/_tomcat安装及配置教程

SPFA算法详解——判断负权环_spfa算法判断负环-程序员宅基地

文章浏览阅读1w次,点赞5次,收藏34次。SPFA(Shortest Path Faster Algorithm)(队列优化)算法是求单源最短路径的一种算法。它是在Bellman-ford算法的基础上加上一个队列优化,减少了冗余的松弛操作,是一种高效的最短路算法。 Bellman-Ford算法虽然可以处理负环,但是时间复杂度为O(ne),e为图的边数,在图为稠密图的时候,是不可接受的。 Bellman-Ford算法的缺点在于,当某一个..._spfa算法判断负环

步进电机定位不准的原因分析_龙印旗帜机步进走不准-程序员宅基地

文章浏览阅读1.3k次。摘要: 步进电机定位不准的原因分析:  1)一般的步进驱动器对方向和脉冲信号都有一定的要求,如:方向信号在第一个脉冲上升沿或下降沿(不同的驱动器要求不一样)到来前数微秒被确定,否则会有一个脉冲所运转的角度与实际需要的转向相反,最 ... 步进电机定位不准的原因分析:   1)一般的步进驱动器对方向和脉冲信号都有一定的要求,如:方向信号在第一个脉冲上升沿或下降_龙印旗帜机步进走不准

用Python绘制渐变三角螺旋线_turtle画渐变线条-程序员宅基地

文章浏览阅读2.5k次,点赞7次,收藏11次。本文章主要教大家如何制作渐变颜色的三角形螺旋线,下面是代码块的解析,仅供学习python的小伙伴们参考。_turtle画渐变线条

(转)SRC)基于稀疏表示的人脸识别_双字典稀疏表示分类(dd-src)在人脸识别中的用法-程序员宅基地

文章浏览阅读322次。原 (SRC)基于稀疏表示的人脸识别 2013年11月01日 16:19:22 xiaoshengforever 阅读数:30632更多 <div class="tags-box space"> <..._双字典稀疏表示分类(dd-src)在人脸识别中的用法

十五、帧内编码:1、帧内编码的基本原理-程序员宅基地

文章浏览阅读4k次,点赞3次,收藏10次。帧内编码相对其他模块来说相对简单一、帧内编码的重要意义帧内编码时I帧主要的压缩编码方法,帧内编码的性能对视频整体编码结果具有重要影响I帧在编码时只采用当前帧的图像内部数据,体积通常比B/P帧更大,对整体码率的影响很大I帧在帧间编码中通常作为B/P帧的参考数据,如果I帧编码出现错误,将影响B/P帧的编码结果二、早起视频压缩标准的帧内编码1、简介在早期的视频编码标准MPEG-1/MPEG-2中,帧内编码已经发挥重要作用,只不过是比H264简单的多。MPEG-1/MPEG-2中已经定义了_帧内编码

随便推点

安装使用完虚拟机UltraISO后,删除电脑中多出的“CD驱动器”盘符_rtl_ul-程序员宅基地

文章浏览阅读8.1k次,点赞6次,收藏10次。如何删除安装UltraISO后此电脑中多出的“CD驱动器”盘符?在安装过UltraISO后,通常情况下,Windows 10中会多出一个或数个“CD驱动器”盘符。对很多仅用UltraISO来把Windows镜像制作成Windows安装介质的同学来讲,这个“CD驱动器”的盘符并没有什么实际的作用。那么这期教程。我们就来讨论如何将安装过UltraISO后,“此电脑”中多出的“CD驱动器”盘符删掉..._rtl_ul

FPGA学习笔记之QuartusII中的优化设置-程序员宅基地

文章浏览阅读1.8k次。在学习FPGA中,对工具的使用的依赖性感觉还是很大的。那么在quartusII中,可以在多个阶段对设计进行优化.我使用的版本为11.1(这个版本怎么感觉不稳定呢?总是会突然的出现violation而需要重新启动) 一般都会在assignment/settings中进行设置1.全局优化: 在assignment/settings/如图所示中,physical synthesis ..._quartus 综合 优化

历数近22年计算机科学顶会最佳论文:微软领先,清华国内第一-程序员宅基地

文章浏览阅读164次。机器之心报道,机器之心编辑部。研究人员可能会觉得,如果有一份统计近年来所有 CS 顶会最佳论文的网站就好了。事实上,确实有这样一个网站:来自布朗大学计算机科学助理教授 Jeff Huang 统计了自 1996 年以来,计算机科学领域里所有重要会议的最佳论文。此前,Jeff Huang 还统计过全美 Top 50 大学的计算机系教授出身情况(本科就读大学),并得出了 MIT 第一,清华大学第六的结论...

/usr/bin/ld: /usr/bin/ld: cannot find -lc-程序员宅基地

文章浏览阅读940次。问题描述: 在专题1的交叉工具链讲解部分,使用静态链接方式编译 gcc -static hello.c -o hello, 提示 /usr/bin/ld: /usr/bin/ld: cannot find -lc。 问题原因: 搜索了之后基本确定是因为 /usr/bin/中缺少libc.a 这个文件。 它是编译器静态编译过程中要用的库文件。处理办法:利用QQ群里共享的文件g_/usr/bin/ld: cannot find -lc

3、mqtt客户端演示(MQTT通信协议(mosquitto)发布订阅 C语言实现)_c语言mqtt订阅消息-程序员宅基地

文章浏览阅读1.1k次,点赞3次,收藏9次。MQTT通信协议(mosquitto)发布订阅 C语言实现_c语言mqtt订阅消息

需求分析-程序员宅基地

文章浏览阅读7.3w次,点赞29次,收藏136次。(一) 需求分析的目标和任务他的基本任务是:准确地回答“系统必须做什么”这个问题,也就是对目标系统提出完整、准确、清晰、具体的要求1、确定对系统的综合要求:功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求、约束(设计约束或实现约束描述在设计或实现应用系统时应遵守的限制约束条件)、逆向需求(说明软件系统不应该做什么)、将来可能提出的需求2、分析系统的数据需求3、导出系统..._需求分析