一、私服的概念
中央仓库
目前来说: https://repo1.maven.org/maven2/是真正的Maven中央仓库的地址,该地址内置在Maven的源码中其他的都是镜像。
仓库镜像
如果仓库x(阿里云仓库)可以提供仓库Y(中央参数)存储的所有内容,那么就可以认为X是Y的一个镜像,使用镜像可以提高项目构建效率。
仓库的索引
中央仓库带有索引文件以方便用户对其进行搜索,索引每周更新一次,中央仓库的索引有几十M。
黑名单
如果某个IP地址恶意的下载中央仓库内容,例如全公司100台机器使用同一个IP反复下载,这个IP(甚至是IP段)会进入黑名单,因此稍有规模的使用Maven时,应该用Nexus架设私服。
私服
有些公司不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了nexus私服的电脑访问maven的远程仓库。
二、私服的安装与配置
链接: https://pan.baidu.com/s/1zABEMePOFCKcloAZjV5ZYQ 提取码: hbum
1.在任意位置创建目录:nexus
2.解压到nexus目录下会出现两个目录,两个目录都有用
前置条件:需要安装配置jdk环境变量和maven环境变量
配置文件说明
安装路径下etc目录中nexus-default.properties文件保存有nexus基础配置信息,例如默认访问端口。
安装路径下bin目录中nexus.vmoptions文件保存有nexus服务器启动对应的配置信息,例如默认占用内 存空间。
查看所有参数
nexus /?
私服访问
1.启动 nexus /run
不安装后台服务,每次就nexus /run启动关闭命令行窗口就停止了。
2.访问localhost:8081成功显示如下页面就是启动成功。
3.登陆
4.设置新密码和默认配置
私服仓库分类
仓库类别 | 英文名称 | 功能 | 关联操作 |
---|---|---|---|
宿主仓库 | hosted | 保存自主研发+第三方资 | 上传 |
代理仓库 | proxy | 代理连接中央仓库 | 下载 |
仓库组 | group | 为仓库编组简化下载操作 | 下载 |
私服的配置
1.修改中央仓库的地址为,阿里云的中央仓库 https://maven.aliyun.com/nexus/content/groups/public
2.修改RELEASES(maven-releases)为不可以可以重复部署(正式版同一个版本一般修改为不允许重复修改,Allow redeploy更改为Disable redeploy)
三、idea环境中资源上传
1.配置本地仓库访问私服的权限,修改maven的conf/settings.xml配置文件,指定访问私服的用户名/密码
<server>
<id>releases</id>
<username>admin</username>
#这里是私服设置的密码
<password>123456</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
#这里是私服设置的密码
<password>123456</password>
</server>
2.IDEA中配置要上传项目中的发布管理,修改pom.xml,指定上传的位置
<distributionManagement>
<repository>
<id>releases</id>
<url>http://localhost:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://localhost:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
这里的仓库地址就是nexus里面的正是库和快照库的仓库地址。
3.1 上传快照库
<version>1.0-SNAPSHOT</version> : 结尾是SNAPSHOT 就会上传到快照版本库
<version>1.0-RELEASE</version> : 结尾是RELEASE 就会上传到正式版本库
上传maven命令 deploy: 先编译项目,打包,安装到本地仓库,上传到私服
上传成功之后,快照仓库就可以查看
用户下载需要去公共仓库下载
查看HTML结构
快照版可以上传多次,会记录每一次版本更新记录,IDEA再次deploy,就可以看到1.0版本的第二版。
3.2 上传正式库
修改vesion标签中的后缀为RELEASE
deploy成功之后
注:正式版只能上传一次(默认)除非修改了配置文件,不然就会报错
私服仓库的好处就是自己有权限可以上传资源,而阿里云仓库普通用户是没有权限上传的,比如公司内部工具类之类的jar包上传到私服,内部人员就可以下载jar包使用
四、idea环境中资源下载
修改%MAVEN_HOME%\conf\settings.xml文件
需要依赖的时候先去私服下载,私服没有再去阿里云仓库(因为私服中央代理仓库还是阿里云),阿里云仓库没有才去中央仓库找。
所以说一般就配置阿里云仓库,除非公司内网不提供外网给项目组人员才需要把这个位置更换为公司提供的私服仓库。