nexus官网
https://www.sonatype.com/nexus/repository-pro

下载免费版本:

安装Nexus

1.下载
nexus-3.29.2-02-unix.tar.gz2.解压
tar -xzf nexus-3.29.2-02-unix.tar.gz3.修改配置文件(不修改默认配置可跳过这个步骤)
cd nexus-3.29.2-02
vi etc/nexus-default.properties
# 先备份一下配置文件
cp nexus-default.properties nexus-default.properties_bak0208
默认端口8081, 可以在文件里面配置4.启动(不建议root用户启动,当然你要root启动也可以)
./bin/nexus start

配置文件

启动

访问 http://192.168.40.129:8081/

访问不通时关闭防火墙
查看防火墙状态
systemctl status firewalld.service
关闭防火墙
systemctl stop firewalld.service
禁用防火墙
systemctl disable firewalld.service

登陆:初始账号 admin ,密码在 /home/soft/sonatype-work/nexus3/admin.password 文件里,进去之后按提示修改

主界面:

  • maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar(Proxy)
  • maven-releases:私库发行版jar(Hosted)
  • maven-snapshots:私库快照jar(Hosted)
  • maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置(Group)

上传自己的jar包到Nexus

1.配置maven目录->setting.xml

<server><!-- 随便设置一个id,对应pom.xml里面distributionManagement-repository的id --><id>mydeploymentRepo</id><!-- nexus 账号 --><username>admin</username><!-- nexus 密码 --><password>123456</password>
</server>

2.配置pom.xml

<!-- 使用distributionManagement将项目打包上传到nexus私服 --><distributionManagement><!--正式仓--><repository><!-- nexus服务器中用户名:在settings.xml中<server>的id--><id>mydeploymentRepo</id><!-- 这个名称自己定义 --><name>Release repository</name><!-- 正式仓地址 --><url>http://192.168.40.129:8081/repository/maven-releases/</url></repository><!--快照仓--><snapshotRepository><!-- nexus服务器中用户名:在settings.xml中<server>的id--><id>mydeploymentRepo</id><!-- 这个名称自己定义 --><name>Snapshots repository</name><!-- 快照仓地址 --><url>http://192.168.40.129:8081/repository/maven-snapshots/</url></snapshotRepository></distributionManagement>.....
<build><plugins><!--打一个源码包, deploy之后源码包也传到nexus--><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><executions><execution><id>attach-sources</id><goals><goal>jar</goal></goals></execution></executions></plugin></plugins>
</build>

3.打包上传

mvn deploy -Dmaven.test.skip=true

源码包效果

本地:

nexus

maven从nexus下载依赖

配置pom.xml

<repositories><repository><id>mydeploymentRepo</id><name>nexus maven</name><url>http://192.168.40.129:8081/repository/maven-public/</url></repository></repositories>

效果

release正式版本和snapshot快照版本区别

正式版和快照版打包发布:
maven会根据模块的版本号(pom文件中的version)中是否带有-SNAPSHOT来判断是快照版本还是正式版本;
pom.xml version中有SNAPSHOT,则发布到快照库;无SNAPSHOT则发布到正式库;

配置片段:

    <groupId>com.qmy</groupId><artifactId>act-sdk</artifactId><!--正式版本--><version>1.0.1</version><!--快照版本-->
<!--    <version>1.0.1-SNAPSHOT</version>-->

aven-releases和maven-snapshots为Nexus默认自带的私有仓

正式版本仓:

快照版本仓:

正式版本和快照版本的主要区别在于,本地获取这些依赖的机制有所不同。

  • 正式版本:构建的时候,先在本地仓库中查找是否已经有了这个依赖库,如果没有的话才会去远程仓库去拉取。如果发布一个xxx-1.1.jar到远程仓库,有一个项目依赖这个库,第一次构建会把这个jar拿到本地仓库中,以后再构建就不会去访问远程仓库了。你修改了代码发布上去,也不会再拉,本地这个库不能得到更新。除非升级这个版本 xxx-1.2.jar,然后通知项目,修改依赖为这个版本。
  • 快照版本:会优先去远程仓库中查看是否有最新的xxx-1.2.jar,如果有则下载下来使用。即使本地仓库中已经有了xxx-1.2.jar,它也会尝试去远程仓库中查看同名的jar是否是最新的。在配置Maven的Repository的时候中有个配置项,可以配置对于SNAPSHOT版本向远程仓库中查找的频率。频率共有四种,分别是always、daily、interval、never。当本地仓库中存在需要的依赖项目时,always是每次都去远程仓库查看是否有更新,daily是只在第一次的时候查看是否有更新,当天的其它时候则不会查看;interval允许设置一个分钟为单位的间隔时间,在这个间隔时间内只会去远程仓库中查找一次,never是不会去远程仓库中查找(这种就和正式版本的行为一样了)。
  • 所以一般在开发模式下,我们可以频繁的发布SNAPSHOT版本,以便让其它项目能实时的使用到最新的功能做联调;当版本趋于稳定时,再发布一个正式版本,供正式使用。当然在做正式发布时,也要确保当前项目的依赖项中不包含对任何SNAPSHOT版本的依赖,保证正式版本的稳定性。

创建自定义私有仓

选策略 maven2(hosted)

配置maven-public,将ltx加到里面,它默认包含了maven-releases、maven-snapshots、maven-central

备注:上传的话,把distributionManagement-repository的url换成 http://192.168.40.129:8081/repository/ltx/ 就行。

Nexus中央仓远程url配置为阿里云

  • Nexus默认远程仓库为https://repo1.maven.org/maven2/
  • 阿里云代理仓库:http://maven.aliyun.com/nexus/content/groups/public/

私有库下载过的依赖,会在私有库缓存起来,开发连接私有库可不用远程下载,直接走的私有库下载,速度会快一些

Nexus部署和使用(笔记)相关推荐

  1. J4125小主机部署软路由笔记01

    J4125部署软路由笔记01 硬件 软件 硬件 闲鱼淘了一个,幻网J4125,上家配好了8G内存+240G SSD硬盘,4口2.5G网络,2个USB口,到手就可以用了. 软件 软件比较复杂,方案太多了 ...

  2. 云原生之使用Docker部署Dailynotes个人笔记管理工具

    云原生之使用Docker部署Dailynotes个人笔记管理工具 一.Dailynotes介绍 二.检查本地docker环境 1.检查docker版本 2.检查docker状态 三.下载Dailyno ...

  3. 关于K8s中Ansible AWX(awx-operator 0.30.0)平台Helm部署的一些笔记

    写在前面 整理一些K8s中通过Helm的方式部署AWX的笔记分享给小伙伴 博文内容为部署过程和遇到问题的解决过程 食用方式: 需要了解K8s 需要预置的K8s+Helm环境 需要科学上网 理解不足小伙 ...

  4. 个人云服务器部署leanote(蚂蚁笔记)

    个人云服务器部署leanote(蚂蚁笔记) 前言 Leanote是一款开源云笔记软件,使用Go的web框架revel和MongoDB开发完成.蚂蚁笔记是目前我在用的技术笔记,最早是完全开放给用户来使用 ...

  5. CentOS7+安装Docker,并部署为知笔记服务端Docker镜像

    1.卸载清空已安装Docker文件 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker ...

  6. IDEA中安装配置Jrebel热部署插件用法笔记

    今天给大家介绍一下IDEA中安装配置Jrebel热部署插件用法,希望对大家能有所帮助! 1.Jrebel插件介绍 JRebel属于一款JAVA虚拟机插件,它可以让你的项目在不需要进行重新编译的情况下, ...

  7. Linux下部署Tomcat项目笔记

    今天给大家分享一下如何在Linux系统下部署Tomcat项目.希望能给Java初学者提供一些帮助. 基本环境:Centos7.tomcat8.jdk8,MySQL5.6.nginx 1.安装JDK y ...

  8. Centos6部署leanote蚂蚁笔记

    Leanote 文章出处:https://51.ruyo.net/2922.html 下面介绍一下本文的猪脚 :Leanote (蚂蚁笔记) 官网 : https://leanote.com 开源:h ...

  9. 502 宝塔 部署tomcat_【笔记】如何使用宝塔面板 +Tomcat 搭建 Solo 博客。

    概要:使用宝塔面板 +Tomcat 安装 Solo 博客的一次成功尝试的笔记. 零.前言 尽管不生产有价值的内容,甚至连写日记都难以坚持,但拥有一个自己的博客总是有趣的. 于是我购买域名,租用虚拟服务 ...

最新文章

  1. 将 SqlDataReader 类用于快速只进数据游标
  2. 前端知识点整理(三)不定时更新~
  3. 在WCF中启用事务的6个步骤
  4. 信息图:iOS 7开发者需要知道的事
  5. 计算机桌面工具栏,好用的4D桌面工具栏必备,整洁的桌面小众软件
  6. vue 下载文件的两种方法
  7. IPV4内网地址网段
  8. iOS游戏开始者从零开始:6个月的学习编程经历
  9. 25句经典语录 带你成长
  10. AtCoder Beginner Contest 236 题解
  11. AES256加解密与异常处理
  12. php上传带进度条_PHP+Ajax无刷新带进度条图片上传示例
  13. RNG战队联名设计 iGame Z390 RNG限量版上线
  14. 监督学习、无监督学习、半监督学习和强化学习
  15. ot permission denied while trying to connect to the Docker daemon socket at
  16. 软件性能测试 容量测试,性能测试容量计算方法
  17. EventLoopGroupEventLoop
  18. 2019年5月1日起安卓应用应基于API 26开发
  19. 福禄克FLUKE DTX-1800和DSX2-8000系列电缆认证分析仪如何导出测试报告?
  20. 电子驻车系统(卡钳式)

热门文章

  1. 工具(四)--RMB大写金额正则表达
  2. 【2016年年中总结】——你变成了你喜欢的样子了吗?
  3. 2021年亚太杯APMCM数学建模大赛C题生态保护的建设及其对环境影响的评价求解全过程文档及程序
  4. 获取当前网页的协议+域名
  5. TWEN-ASR ONE 语音识别系列教程(3)--- 软件定时器和串口使用
  6. 祛除甲醛谁才是最好的帮手呢?小霸豆帮了大忙
  7. C语言实现,用*号输出字母C的图案。
  8. 恒压恒流数控电源,恒压电源,恒流电源
  9. Samsung Galaxy S - Epic 4G vs Fascinate, Vibrant, Captivate: Total Cost of Ownership
  10. NUC972资料整理