公司为了方便jar包的管理和自身项目jar包的分发,都会搭建一个maven私服。公司员工可以从该私服下载jar包,倘若私服上不存在某个jar包时,maven私服再去公网仓库下载,其实也起到了一个反向代理的作用。本文将阐述如何搭建maven私服nexus。
1、环境约束
- win10
- nexus-2.12.0-01
- maven-3.0.5
2、前提约束
- 已经部署maven-3.0.5
假设作者maven路径是 C:\Program Files\maven-3.0.5
假设作者的本地仓库位于C:\Users\zhangli.m2
2、操作步骤
2.1 搭建和启动nexus服务
- 下载nexus
nexus官网地址
选择windows版本
作者这边的版本是nexus-2.12.0-01 - 解压,假设解压到文件夹D:/soft
解压到D:/soft - 以管理员身份打开命令行,执行以下命令
# 进到D盘
D:
# 进入nexus解压目录
cd D:\soft\nexus-2.12.0-01\bin
# 安装nexus
nexus.bat install
# 启动nexus
nexus.bat start
- 查看操作系统服务
nexus web正在运行 - 访问http://localhost:8081/nexus/
![nexus首页](https://upload-images.jianshu.io/upload_images/16204070-7407bea38424c3ed.png?imageMogr2/auto-orient/strip%7CimageView2
/2/w/1240) - 登录
点击Login
输入默认账号与密码
2.2 上传jar包到私服
- 修改C:\Users\zhangli.m2\settings.xml,在servers节点下增加nexus server配置
* 将Apache SnapShots与其他节点加为同一组
![图片.png](https://upload-images.jianshu.io/upload_images/16204070-4b4d1f0cd59e301f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
图片.png
- 创建一个maven项目,名称为nexusdemo
https://www.jianshu.com/p/042073b7710b
假设创建的项目信息如下:
<groupId>net.wanho.nexus</groupId>
<artifactId>nexus-demo</artifactId>
<version>1.0-SNAPSHOT</version>
- 修改nexusdemo的pom.xml,在project节点下面加入以下内容:
<distributionManagement>
<repository>
<id>releases</id>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
- install nexusdemo项目
在C:\Users\zhangli.m2\repository\net\wanho\nexus\nexus-demo\1.0-SNAPSHOT路径下面安装了nexus-demo-1.0-SNAPSHOT jar包以及对应的pom - deploy nexusdemo项目
在D:\soft\sonatype-work\nexus\storage\snapshots\net\wanho\nexus\nexus-demo\1.0-SNAPSHOT路径下有了nexus-demo-1.0-SNAPSHOT jar包及其对应的pom
从私服下载jar包
- 创建一个maven项目,名称为nexus-use-jar
- 在该项目中加入以下依赖:
<dependency>
<groupId>net.wanho.nexus</groupId>
<artifactId>nexus-demo</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
此时,该jar包的引入是没问题的,因为它来自.m2;
- 修改nexus-use-jar的pom.xml,在project节点下加入以下内容:
<repositories>
<repository>
<id>abc</id>
<url>http://localhost:8081/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>abc</id>
<url>http://localhost:8081/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
- 将Apache Snapshots与其他配置加到同一组
点击save
结果如下
加到同一组 - 删除C:\Users\zhangli.m2\repository\net\wanho\nexus文件夹
此时,nexus-use-jar项目中的依赖出错,但是reimport 项目以后,刚被删除的jar包又重新下载到了C:\Users\zhangli.m2\repository\net\wanho\nexus文件夹下。显然我们并没有重新install,这个jar包就是自动从私服下载的。
以上就是maven私服nexus搭建并上传下载jar包的过程。