简介
Maven私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件,有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库,否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。
下载(version-2.x)
官网下载页:https://www.sonatype.com/download-oss-sonatype
或
链接:https://pan.baidu.com/s/1z-L29iFBD4y_i1PRMzwryA
提取码:tk3h
安装 【在安装Nexus前我们要确保系统已经安装了JDK1.8】
- 解压安装包
nexus-2.14.1-02-win.zip
,打开命令提示符【需要以管理员身份运行cmd命令行窗口】,进入nexus-2.14.1-02-win.zip/bin
目录 -
安装命令
nexus.bat install
- 卸载命令
nexus.bat uninstall
- 打开服务窗口,nexus已安装,右键启动该服务
- 打开浏览器,访问:
http://localhost:8081/nexus/
- 点击右上角
Log In
,使用默认账号:admin
,密码:admin123
登录, 到这里我们就已经完成了私服的搭建。
二、Nexus修改默认端口
1、找到Nexus的配置文件nexus.properties
,Nexus根目录/conf/nexus.properties
2、更改为自定义端口
3、修改管理员账号密码
使用管理员账号登录后点击上方profile
,进入到个人信息页面即可修改密码
4、Nexus仓库类型介绍
登陆Nexus
,在左边菜单栏里选择Repositories
,repository
的类型有一下几种:
hosted
,本地仓库,通常我们会部署自己的构件到这一类型的仓库。比如公司的第三方库proxy
,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库group
,仓库组,用来合并多个hosted/proxy
仓库,当你的项目希望在多个repository
使用资源时就不需要多次引用了,只需要引用一个group
即可-
Nexus
预置了3个本地仓库,分别是Releases
,Snapshots
,3rd Party
Releases
:存放自己项目中发布的构建, 通常是Release
版本的Snapshots
:存放非release
版本, 非稳定版本3rd Party
: 存放第三方库
Nexus建库
Add
-->HostedRepository
然后选择
PublicRepositories
,打开configuration
选项卡,将自己创建的仓库添加到group
,如图从右侧移到左侧,点击save
保存,至此,已经成功搭建好自定义的仓库了Nexus创建账号
按图创建账号
jar包上传下载配置
- 远程仓库认证,在
settings.xml
中配置<servers>
节点<servers> <server> <id>tbsnexus</id> <username>tb-user</username> <password>P@ssw0rd</password> </server> </servers>
上述代码中配置了一个
id
为tbsnexus
的远程仓库认证信息,Maven
使用settings.xml
文件中的servers
元素及其子元素server
配置仓库认证信息,认证用户名为tb-user
,认证密码为P@ssw0rd
,这里的关键是id
元素,id
没有要求,随便定义,但是后面配置远程仓库的id
必须和这里的id
保持一致,正是这个id
将认证信息与仓库配置联系在了一起
配置远程仓库
<profiles> <profile> <id>tbsnexus</id> <repositories> <repository> <id>tb-repositories</id> <name>Repository for tb-repositories</name> <url>http://39.100.65.160:8081/nexus/content/repositories/tb-repository/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> </profile> </profiles> <activeProfiles> <activeProfile>tbsnexus</activeProfile> </activeProfiles>
配置仓库镜像
<mirror> <id>tb-repositories</id> <mirrorOf>*</mirrorOf> <url>http://39.100.65.160:8081/nexus/content/repositories/tb-repository/</url> </mirror> <!--配置阿里云Maven镜像--> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> <!--配置华为云Maven镜像--> <mirror> <id>huaweicloud</id> <mirrorOf>*</mirrorOf> <url>https://mirrors.huaweicloud.com/repository/maven/</url> </mirror>
默认的,如果本地仓库找不到依赖的构件,这时需要东西时先到
Nexus
上找,如果发现Nexus
服务关闭后,会自动到中央仓库找,至此,已经可以私服下载jar
包了上传
jar
包- 定位到要上传的
jar
包的目录 - 执行命令
mvn deploy:deploy-file -DgroupId=com.tbtech -DartifactId=tb-tools -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=tb-tools-1.0-SNAPSHOT.jar -Durl=http://39.100.65.160:8081/nexus/content/repositories/tb-repository -DrepositoryId=tbsnexus
deploy:deploy-file
表示发布独立的文件groupId
,artifactId
,version
可根据需要设定url
为Nexus
服务器中需要上传的仓库路径repositoryId
与server
的id
必须一致- 上传结果
上传成功后,我们只需在
pom.xml
中引入<dependency>
就可以下载该jar包了<dependency> <groupId>com.tbtech</groupId> <artifactId>tb-tools</artifactId> <version>1.0-SNAPSHOT</version> </dependency>