发布release

用户A将代码打包到RELEASE仓库。用户B使用时,需要在pom.xml添加jar包的依赖坐标。如果用户A将jar包版本从1.0升级到2.0,用户B使用时也需要在pom.xml中修改坐标版本。但是RELEASE表示是稳定版本,是经过测试以后才会发布的,通常不会频繁地升级版本。

快照SNAPSHOT

SNAPSHOT是不稳定版本,可能是还在开发中的版本,在开发时用户A可能每天都会更新代码,可能会频繁地发布版本。而另一组用户B需要实时得到A的最新代码版本,以进行同步开发。如果使用RELEASE仓库需要不停地更换坐标,才能升级到最新版本。而在SNAPSHOT仓库则不需要这么做,用户A和用户B都不用升级版本。

用户A每次发布时会根据当时的时间创建一个新的快照版本,之前的吧、快照版本也会保留成为历史版本。用户B每次构建项目时会自动根据版本时间加载最新的依赖jar包。所以这种模式更加适合于多模块同步开发测试阶段。

 

RELEASE仓库的用法

RELEASE仓库的用法在上一篇hosted宿主仓库的介绍中有提到:https://www.cnblogs.com/NYfor2018/p/9079629.html

 

SNAPSHOT仓库用法

 

① 与RELEASE仓库类似,在pom.xml中设置快照仓库:

<distributionManagement> 

    <snapshotRepository> 

        <id>snapshot</id> 

        <name>snapshot</name> 

        <url>http://localhost:8081/repository/maven-snapshots/</url> 

    </snapshotRepository> 

</distributionManagement> 

② 同时设置version中的版本后面必须有“-SNAPSHOT”,此后缀代表这是一个快照版。

<version>1.0-SNAPSHOT</version>  

③ 在settings.xml中设置用户名密码,id要和上面的对应(与RELEASE仓库的设置类似)。

<servers> 

    <server> 

        <id>snapshot</id> 

        <username>admin</username> 

        <password>admin123</password> 

    </server> 

</servers> 

(需要注意,不要偷懒哦,这里server的id是snapshot,不是release,所以还是需要在settings.xml中设置)

④ 运行nexus私服(参考前两篇:https://www.cnblogs.com/NYfor2018/p/9079068.html、https://www.cnblogs.com/NYfor2018/p/9079629.html )。

⑤ 在eclipse中右击maven项目--Run as--maven build...,然后在goals输入deploy,再点击Run。

然后打开nexus页面,可在Browse—maven snapshots里面看到,MavenTest项目已经被打包成snapshot版本格式了。

 


参考文章:https://blog.csdn.net/wangb_java/article/details/66000956

(十三)maven之release和snapshots的更多相关文章

  1. Maven发布Release到中心仓库历程记录(无个人域名)

    Maven发布Release到中心仓库历程记录(无个人域名) 前言 因为前段时间自己做了一个爬虫项目(地址),自己很希望分享到maven中心仓库上,感觉拥有自己的jar包令我兴奋,便开始了maven发 ...

  2. nexus建立maven仓库私服及Snapshots、release的版本管理

    环境搭建   1.linux安装maven   wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.0.5/binaries/apache-mave ...

  3. (十三)Maven插件解析运行机制

    这里给大家详细说一下Maven的运行机制,让大家不仅知其然,更知其所以然. 1.插件保存在哪里? 与我们所依赖的构件一样,插件也是基于坐标保存在我们的Maven仓库当中的.在用到插件的时候会先从本地仓 ...

  4. Java开发学习(三十三)----Maven私服(一)私服简介安装与私服分类

    一.私服简介 团队开发现状分析 (1)张三负责ssm_crm的开发,自己写了一个ssm_pojo模块,要想使用直接将ssm_pojo安装到本地仓库即可 (2)李四负责ssm_order的开发,需要用到 ...

  5. Maven学习(十三)-----Maven 构建生命周期

    Maven 构建生命周期 构建生命周期是什么? 构建生命周期阶段的目标是执行顺序是一个良好定义的序列. 这里使用一个例子,一个典型的 Maven 构建生命周期是由下列顺序的阶段: 阶段 处理 描述 准 ...

  6. maven pom.xml 说明

    本文复制于:http://blog.csdn.net/zhuxinhua/article/details/5788546 一.pom.xml示例 <project> <modelVe ...

  7. Gradle 1.12用户指南翻译——第五十二章. Maven 插件

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上 ...

  8. maven常用插件集

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  9. maven权威指南学习笔记(五)—— POM

    1. 简介 Archetype插件通过 pom.xml 文件创建了一个项目.这就是项目对象模型 (POM),一个项目的声明性描述. 当Maven运行一个目标的时候,每个目标都会访问定 义在项目POM里 ...

随机推荐

  1. <正则吃饺子> :关于新项目的环境搭建(一)

    来到新的公司,需要使用myeclipse.maven.svn.tomcat.mysql: 对于先前一直只用 netbeans 的我,在这里把环境搭建 的情况记录下来.来加深自己的学习和帮助后来者. 第 ...

  2. CF-798A

    A. Mike and palindrome time limit per test 2 seconds memory limit per test 256 megabytes input stand ...

  3. 使用jdk获取网页

    参考:https://www.zhihu.com/question/30626103 由于例子比较老了,现在的百度抓不到完整的页面了 import java.io.BufferedReader; im ...

  4. 20个Flutter实例视频教程-第04节: 不规则底部工具栏制作-2

    视频地址: https://www.bilibili.com/video/av39709290/?p=4 博客地址: https://jspang.com/post/flutterDemo.html# ...

  5. Unity json

    MiniJSON.cs using UnityEngine; using System; using System.Collections; using System.Collections.Gene ...

  6. 如何实现一个无边框Form的移动和改变大小(二)

    接着上文:这里写链接内容 我们来说说一个比较复杂的实现, 效果如图: 注意为了能够凸显没有NC(NotClient)区域,我们额外用了3个panel分别放在窗体的左右和下部.用来模拟客户自己的控件. ...

  7. windows 系统 GitBook生成PDF、epub报错Error during ebook generation: 'ebook-convert' 乱码

    解决方法 1. 根据你的系统下载calibre并安装 2. 右键属性打开桌面图标位置 3 .复制该路径: 4. 打开我的电脑-属性-系统-高级系统设置-环境变量,配置环境. 5. 编辑"PA ...

  8. ADO学途 four day 数据库左右连接

    数据库的多表操作 数据库用于存放用户数据,用户数据库的数据又会有不同表来存放不同类型的数据,这这是就会产生多 张表来满足需求.列如,部门表有市场部,技术部,行政部等.,子表就有员工具体信息表用来存放员 ...

  9. log4j.xml中Filter的用法

    前言 log4j中常用的Filter分为四种:DenyAllFilter.LevelMatchFilter.LevelRangeFilter.StringMatchFilter. 当appender匹 ...

  10. 关于 js中的arguments 对象

    arguments对象包含了函数运行时的所有参数,arguments[0]就是第一个参数,arguments[1]就是第二个参数,以此类推.这个对象只有在函数体内部,才可以使用. var f = fu ...