内容简介:Maven的原理就是将jar从远程中央仓库下载到PC磁盘的本地仓库,当本地仓库没有发现需要的jar就会去Maven默认的远程中央仓库Maven Central(由Apache维护)中寻找,每次需要新的jar后都要从远程中央仓库上下载。那么问题来了?这个远程的中央仓库一定有很多人使用那下载速度一定很慢,这个暂且不用考虑。 重要的是万一哪天公司外网连不上了咋办?而Nexus私服恰好可以解决这个问题。搭建私服的好处是Nexus有效解决了Maven对Apache的远程中央仓库的依赖,当项目需要新的jar时会先在ne
Maven的原理就是将jar从远程中央仓库下载到PC磁盘的本地仓库,当本地仓库没有发现需要的jar就会去Maven默认的远程中央仓库Maven Central(由Apache维护)中寻找,每次需要新的jar后都要从远程中央仓库上下载。那么问题来了?这个远程的中央仓库一定有很多人使用那下载速度一定很慢,这个暂且不用考虑。 重要的是万一哪天公司外网连不上了咋办?而Nexus私服恰好可以解决这个问题。搭建私服的好处是Nexus有效解决了Maven对Apache的远程中央仓库的依赖,当项目需要新的jar时会先在nexus私服下载好以后才会下载到本地。如果发现私服已经存在这个jar包,则会直接从私服下载到本地Maven库,如果没有再去网络上下载。同时,我们也可打包自己的代码变成jar包上传到私服中供公司其他同事下载使用。
准备工作
- 安装Nexus 之前先确定是否已经安装JDK,这里安装的是jdk8版本(如何安装JDK步骤叙述,)
安装Nexus
下载完成后解压安装
- 解压
tar -zvxf nexus-3.13.0-01-unix.tar.gz -C /opt/ 复制代码
- 环境变量配置
vim /opt/nexus-3.13.0-01/bin/nexus
//配置JDK 路径
INSTALL4J_JAVA_HOME_OVERRIDE=/opt/jdk1.8.0_181
复制代码
- 启动Nexus
/opt/nexus-3.13.0-01/bin/nexus start 复制代码
- 浏览器打开Nexus界面,默认端口号是8081(注意需要判断服务器是否开通了该端口号的监听,这里我将默认端口号改成9190)
//加入9190端口的监听
vim /etc/sysconfig/iptables
查看是否监听端口(如果配置了自己定义的端口,需要先访问该端口一次才能看到监听)
netstat -ntlp
//重启防火墙配置(不重启端口还是无法生效)
service iptables restart
//修改端口号
vim /opt/nexus-3.13.0-01/etc/nexus-default.properties
//重启Nexus
/opt/nexus-3.13.0-01/bin/nexus restart
Nexus其他命令
//停止
nexus stop
//查看状态
nexus status
默认登录用户名密码
admin
admin123
卸载
rm -rf nexus-3.13删除掉安装目录即可
//可以看到Nexus在浏览器中可以打开界面,部署成功,如下图
复制代码
配置jenkins,maven更新到Nexus私服
- 修改Jenkins服务器上的Maven的settings.xml文件(路径是Maven安装路径 /opt/apache-maven-3.5.4/conf/),加入maven访问nexus认证,访问Nexus的帐号密码为上面登录nexus的默认登录用户名密码
- maven 项目pom文件配置私服仓库
<repositories>
<repository>
<id>nexus</id> <!--id要和上一步配置的id一致-->
<name>local nexus</name>
<url>http://xxxxx:9190/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>local nexus</name>
<url>http://xxxxx:9190/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
复制代码
Nexus 默认的三种类型仓库,创建仓库的时候可以选择这三种
1.group(仓库组类型):又叫组仓库,用于方便开发人员自己设定的仓库;
2.hosted(宿主类型):内部项目的发布仓库(内部开发人员,发布上去存放的仓库)
3.proxy(代理类型):从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的 Configuration 页签下 Remote Storage Location 属性的值即被代理的远程仓库的路径)
复制代码
proxy(代理类型)
- 这里就是代理的意思,代理远程中央 Maven 仓库,当 项目构建访问中央库的时候,先通过代理去远程中央仓库下载依赖包到Nexus 仓库,然后再从Nexus仓库下载到本地。私服我们部署在内网服务器,只要其中一个人从远程中央库下来了,以后相同的依赖包就都是从Nexus私服上进行下载,这样大大加快下载速度,不怕远程中央仓库出现问题。
hosted(宿主类型)
- 创建布和代理方式创建差不多
- Hosted 是宿主机的意思,就是怎么把第三方的 Jar 放到私服上。 Hosted 有三种方式,Releases、SNAPSHOT、Mixed
group(仓库组类型)
- 将其他仓库类型合并一起(maven public就是group类型),如图所示将其他仓库合在一下提供对外使用
仓库属性说明
- maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar
- maven-releases:私库发行版jar
- maven-snapshots:私库快照(调试版本)jar
- maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml中使用。
Nexus jar 包上传与删除
上传jar包
- 如果我们使用的远程maven中心库有jar包无法下载,或者是我们自己编译好的jar包提供给公司其他人,则可以将本地jar包上传到私服仓库
以上所述就是小编给大家介绍的《Centos下 Nexus 3.x 搭建Maven 私服》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 搭建docker私服
- 为 Go module 搭建私服
- 自己搭建Maven服务器私服
- 搭建 nuget 私服及注意事项
- Mastodon 2.9.2 发布,用它搭建“私服”微博
- Mastodon 2.8.2 发布,用它搭建一个“私服”微博!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Beautiful Code
Greg Wilson、Andy Oram / O'Reilly Media / 2007-7-6 / GBP 35.99
In this unique work, leading computer scientists discuss how they found unusual, carefully designed solutions to difficult problems. This book lets the reader look over the shoulder of major coding an......一起来看看 《Beautiful Code》 这本书的介绍吧!