Nexus部署和使用(笔记)
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部署和使用(笔记)相关推荐
- J4125小主机部署软路由笔记01
J4125部署软路由笔记01 硬件 软件 硬件 闲鱼淘了一个,幻网J4125,上家配好了8G内存+240G SSD硬盘,4口2.5G网络,2个USB口,到手就可以用了. 软件 软件比较复杂,方案太多了 ...
- 云原生之使用Docker部署Dailynotes个人笔记管理工具
云原生之使用Docker部署Dailynotes个人笔记管理工具 一.Dailynotes介绍 二.检查本地docker环境 1.检查docker版本 2.检查docker状态 三.下载Dailyno ...
- 关于K8s中Ansible AWX(awx-operator 0.30.0)平台Helm部署的一些笔记
写在前面 整理一些K8s中通过Helm的方式部署AWX的笔记分享给小伙伴 博文内容为部署过程和遇到问题的解决过程 食用方式: 需要了解K8s 需要预置的K8s+Helm环境 需要科学上网 理解不足小伙 ...
- 个人云服务器部署leanote(蚂蚁笔记)
个人云服务器部署leanote(蚂蚁笔记) 前言 Leanote是一款开源云笔记软件,使用Go的web框架revel和MongoDB开发完成.蚂蚁笔记是目前我在用的技术笔记,最早是完全开放给用户来使用 ...
- CentOS7+安装Docker,并部署为知笔记服务端Docker镜像
1.卸载清空已安装Docker文件 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker ...
- IDEA中安装配置Jrebel热部署插件用法笔记
今天给大家介绍一下IDEA中安装配置Jrebel热部署插件用法,希望对大家能有所帮助! 1.Jrebel插件介绍 JRebel属于一款JAVA虚拟机插件,它可以让你的项目在不需要进行重新编译的情况下, ...
- Linux下部署Tomcat项目笔记
今天给大家分享一下如何在Linux系统下部署Tomcat项目.希望能给Java初学者提供一些帮助. 基本环境:Centos7.tomcat8.jdk8,MySQL5.6.nginx 1.安装JDK y ...
- Centos6部署leanote蚂蚁笔记
Leanote 文章出处:https://51.ruyo.net/2922.html 下面介绍一下本文的猪脚 :Leanote (蚂蚁笔记) 官网 : https://leanote.com 开源:h ...
- 502 宝塔 部署tomcat_【笔记】如何使用宝塔面板 +Tomcat 搭建 Solo 博客。
概要:使用宝塔面板 +Tomcat 安装 Solo 博客的一次成功尝试的笔记. 零.前言 尽管不生产有价值的内容,甚至连写日记都难以坚持,但拥有一个自己的博客总是有趣的. 于是我购买域名,租用虚拟服务 ...
最新文章
- 将 SqlDataReader 类用于快速只进数据游标
- 前端知识点整理(三)不定时更新~
- 在WCF中启用事务的6个步骤
- 信息图:iOS 7开发者需要知道的事
- 计算机桌面工具栏,好用的4D桌面工具栏必备,整洁的桌面小众软件
- vue 下载文件的两种方法
- IPV4内网地址网段
- iOS游戏开始者从零开始:6个月的学习编程经历
- 25句经典语录 带你成长
- AtCoder Beginner Contest 236 题解
- AES256加解密与异常处理
- php上传带进度条_PHP+Ajax无刷新带进度条图片上传示例
- RNG战队联名设计 iGame Z390 RNG限量版上线
- 监督学习、无监督学习、半监督学习和强化学习
- ot permission denied while trying to connect to the Docker daemon socket at
- 软件性能测试 容量测试,性能测试容量计算方法
- EventLoopGroupEventLoop
- 2019年5月1日起安卓应用应基于API 26开发
- 福禄克FLUKE DTX-1800和DSX2-8000系列电缆认证分析仪如何导出测试报告?
- 电子驻车系统(卡钳式)
热门文章
- 工具(四)--RMB大写金额正则表达
- 【2016年年中总结】——你变成了你喜欢的样子了吗?
- 2021年亚太杯APMCM数学建模大赛C题生态保护的建设及其对环境影响的评价求解全过程文档及程序
- 获取当前网页的协议+域名
- TWEN-ASR ONE 语音识别系列教程(3)--- 软件定时器和串口使用
- 祛除甲醛谁才是最好的帮手呢?小霸豆帮了大忙
- C语言实现,用*号输出字母C的图案。
- 恒压恒流数控电源,恒压电源,恒流电源
- Samsung Galaxy S - Epic 4G vs Fascinate, Vibrant, Captivate: Total Cost of Ownership
- NUC972资料整理