前言:
现在Java开发都是采用Maven工程方式,极大地方便了对jar包依赖的管理。简单的工程只需要在开发机安装本地Maven库就可以了,大型工程需要开发多个jar包时就需要搭建一个私有的团队公共的Maven库,开发人员通过私有库管理整个工程的jar包依赖。
如图:
1、下载nexus
官网链接:https://www.sonatype.com/download-oss-sonatype
选择Windwos下载
2、安装nexus
打开cmd控制台,执行:nexus.exe /install 安装服务。
查看nexus服务是否启动
3、用户登录
在浏览器上输入地址:http://127.0.0.1:8081/ 打开nexus管理页面
默认登录是游客身份:anonymous,可以查看仓库并下载依赖,但不能配置nexus
使用管理员身份登录,帐号:admin,密码:admin123
4、管理repository
一、nexus默认创建了几个仓库,如下,其中maven-aliyun和maven-third-party是手动添加的
repositorie有三种类型
group:是一个仓库组,可包含hosted和proxy两种库,下载时按配置顺序从中依次查找
hosted:内部库,部署内部项目的jar包,或第三方的私有的jar包
proxy:代理远程仓库,maven-central是默认maven中央仓库代理,通过代理从远程库中下载的依赖都会被缓存到proxy库中
二、创建阿里云代理库
默认的中央仓库代理maven-central连接的是国外的库,连接很慢,阿里云仓库是国内的库连接速度快,需要创建阿里云代理库
阿里云仓库地址为:http://maven.aliyun.com/nexus/content/groups/public
三、设置maven-public(maven本地库的mirror映像库)
作为maven本地库的mirror映像库既要管理公共jar包,又要能管理团队开发的jar包和第三方私有的jar包。
maven-public是group类型的库,可以包含中央库、本地库、第三方库的jar包,可以作为mirror映像库。
需要对其包含的仓库进行设置:
maven-releases ---- 本地发布库
maven-snapshots ---- 本地snapshot库
maven-third-party ---- 第三方库
marven-aliyun ---- 阿里云中央库
maven-central ---- maven中央库
设置好检索顺序:上方的库先检索,下方的库后检索。
四、创建hosted和proxy库是需要指定Version policy:
release:专用于部署发布版本的jar
snapshot:专用于部署快照版本的jar,jar都是以-SNAPSHOT结尾,pom中version需以-SNAPSHOT(必须大写)结尾
mixed:可包含release和snapshot版本
五、创建hosted类型仓库时,需要将Deployment policy设为Allow redeploy,否则无法部署jar
5、创建可以发布jar包的角色和用户
一、创建角色:deployer,设置对maven-releases、maven-snapshots、maven-third-party库有发布权限
二、创建用户:deployer
6、防火墙设置
创建端口类型的入站规则:Maven私库,协议:TCP,端口:8081
7、settings.xml设置
<!--设置私库认证信息-->
<servers>
<server>
<id>risen-release</id>
<username>deployer</username>
<password>deployer</password>
</server>
<server>
<id>risen-snapshot</id>
<username>deployer</username>
<password>deployer</password>
</server>
</servers>
<mirrors>
<!--设置私库的映像-->
<mirror>
<id>risen</id>
<mirrorOf>*</mirrorOf>
<!-- <mirrorOf>central</mirrorOf> -->
<name>Risen Mirror.</name>
<url>http://192.168.2.156:8081/repository/maven-public/</url>
</mirror>
</mirrors>
settings.xml的<server>的 id 需要与pom.xml的<distributionManagement>的设置一致
pom.xml设置
<distributionManagement>
<repository>
<id>risen-release</id>
<name>Release Repository</name>
<url>http://192.168.2.156:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>risen-snapshot</id>
<name>Snapshot Repository</name>
<url>http://192.168.2.156:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>