Windows环境下搭建nexus私服

1.背景

回顾下maven的构建流程,如果没有私服,我们所需的所有jar包都需要通过maven的中央仓库或者第三方的maven仓库下载到本地,当一个公司或者一个团队所有人都重复的从maven仓库下载jar包,这样就加大了中央仓库的负载和浪费了外网的带宽,如果网速慢的话还会影响项目的进程

2.简介

私服是在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载jar包时,先请求私服,私服上如果存在则下载到本地仓库。否则,私服直接请求外部的远程仓库,将jar包下载到私服,再提供给本地仓库下载。

3.安装

3.1 下载 Maven 仓库管理软件(我们这里使用的是2.x的版本)
https://help.sonatype.com/repomanager2/download
在这里插入图片描述
在这里插入图片描述
3.2 本地解压
3.3 启动

  • 3.3.1 以管理员身份打开cmd,进入到bin目录,先执行nexus install命令,再执行nexus start。
    在这里插入图片描述
  • 3.3.2 打开浏览器,访问http://localhost:8081/nexus
  • 3.3.3 点击右上角Log in,使用用户名:admin,密码:admin123登录
    在这里插入图片描述

4.介绍nexus服务器预置的仓库

hosted:是本地仓库,用户可以把自己的一些jar包,发布到hosted中,比如公司的第二方库
proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。不允许用户自己上传jar包,只能从中央仓库下载
group,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可
virtual,虚拟仓库基本废弃了。
预置仓库
Central:该仓库代理Maven中央仓库,其策略为Release,因此只会下载和缓存中央仓库中的发布版本构件。
Releases:这是一个策略为Release的宿主类型仓库,用来部署正式发布版本构件
Snapshots:这是一个策略为Snapshot的宿主类型仓库,用来部署开发版本构件。
3rd party:这是一个策略为Release的宿主类型仓库,用来部署无法从maven中央仓库获得的第三方发布版本构件,比如IBM或者oracle的一些jar包(比如classe12.jar),由于受到商业版权的限制,不允许在中央仓库出现,如果想让这些包在私服上进行管理,就需要第三方的仓库。
Public Repositories:一个组合仓库

5.创建仓库

5.1点击add ------>hosted repository
在这里插入图片描述 5.2填写仓库信息
在这里插入图片描述
5.3自己创建的仓库添加到group

  • 5.3.1然后选择Public Repositories,打开configuration选项卡,将自己创建的仓库添加到group

5.4将项目发布到maven私服

  • 5.4.1 首先配置maven的setting文件
	//配置的是授权信息   id为仓库的id
    		<server>
    			<id>xiaoqiid</id>
    			<username>admin</username>
    			<password>admin123</password>
    		</server>

在这里插入图片描述

//配置maven公共仓库的地址
	<mirror>
			<id>nexus</id>
			<mirrorOf>*</mirrorOf>
			<url>http://localhost:8081/nexus/content/groups/public/</url>
		</mirror> 
//配置profile  
<profile>
			<id>xiaoqiid</id>      // id随便写  和下面的activeProfile 对应
			<repositories>
				<repository>
					<id>nexus</id>    //id随便写
					<name>nexus private server</name>
					<layout>default</layout>    
					<url>http://localhost:8081/nexus/content/groups/public/</url>
					<releases>
					         <enabled>true</enabled>
					</releases>
					<snapshots>
						<enabled>false</enabled>
					</snapshots>
					<!--
					<snapshots>
						<enabled>true</enabled>
						<updatePolicy>always</updatePolicy>
					</snapshots>
                 -->
				</repository>
			</repositories>
		</profile>
<activeProfiles>
		<activeProfile>xiaoqiid</activeProfile>
	</activeProfiles>
  • 5.4.2pom文件添加
<distributionManagement>
        <repository>
            <id>xiaoqiid</id>
            <url>http://localhost:8081/nexus/content/repositories/xiaoqiid</url>
        </repository>
    </distributionManagement>

5.4.3 clean package deploy 打包之后 查看私服
在这里插入图片描述

6.完成

在开发阶段,可以将包打成快照的版本,这样同事就不需要一直的更改版本,此次没有写在上面,如有需要,下次更新