CentOS7搭建nexus 3.13.0-01私服
1、下载
访问官网:https://www.sonatype.com/
点击product->选择免费版OSS,如图:
点击如图按钮:
这里选择UNIX版本,如图,点击即可开始下载:
2、安装
- 解压
tar -zvxf nexus-3.13.0-01-unix.tar.gz
-
进入etc目录修改基本配置,一般是修改端口配置,这里采用默认8081
-
进入bin目录启动,注意此版本启动需要jdk1.8+
./nexus start
显示 Starting nexus即可
- 访问
浏览器输入:http://xx.xx.xx.xx:8081/ 即可,如果刚启动,暂时访问不了,稍等一会再进行访问,访问界面如图:
3、添加proxy仓库和hosted仓库
- 登录,默认用户名密码:admin\admin123
如需修改密码,点击如图进行操作即可:
- 如图所示,红线框中的仓库是本身就配置好的,他们的含义很简单,网上查询一下即可,需要留意的是maven-public,它关系着从列表中哪些仓库下载,以及先从哪个仓库下载的顺序:
- 新建3rdPart仓库,用来存储maven仓库无法下载到的资源,如连接oracle数据库所需jar包:
点击Create repository即可 - 连接*仓库下载速度很慢,有时候甚至下载不下来,所以这里添加一个proxy类型的阿里云仓库,当需要下载时,先从阿里云进行下载,如图:
阿里云仓库地址:http://maven.aliyun.com/nexus/content/groups/public/
配置红线框中的两项即可,其他默认,点击最下面Create repository即可
-
还有重要的一步,需要将添加的仓库添加进maven-public,并调整下载顺序,否则是不会先从添加的仓库中尝试下载
通过框线中按钮,进行添加并调整顺序,如图:
4、实现项目发布到私服对应仓库
- 首先需要配置setting文件
找到用户目录下.m2文件夹(注意配置maven根目录下的setting.xml文件是全局配置,会影响所有用户的使用,我们一般配置某用户的setting.xml即可),修改setting.xml,如果没有从maven中复制过来一个,添加一下内容:
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>xxxx</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>xxxx</password>
</server>
id随意,用户名密码是以私服的用户名密码
2. pom.xml文件配置
创建了一个测试demo,如图,在pom.xml中添加如下内容:
注意这的id和setting.xml中server配置的id必须相同
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Releases</name>
<url>http://xx.xx.xx.xx:8081/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Snapshot</name>
<url>http://xx.xx.xx.xx:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
- 此时运行命令
mvn clean deploy
运行成功后,登录私服查看,由于项目版本是snapshots,所有会发布到maven-snapshots中,通过查看,可以看出已经部署到了该仓库,如下图:
5、实现从私服中下载资源
有两种方式:
- 配置mirror,可以在setting中添加如下内容:
url是maven-public仓库的访问地址
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://xx.xx.xx.xx:8081/repository/maven-public/</url>
</mirror>
2. 配置profile
<profile>
<id>dev</id>
<repositories>
<repository>
<id>Nexus</id>
<url>http://xx.xx.xx.xx:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>
- 测试是否从仓库下载,以及仓库下载顺序
还是使用前面的测试demo项目,删除本地仓库中dom4j,点击maven中reimport,当下载好的时候,登录私服查看是否aliyun-proxy下载了相应的资源,如图:
可以看到,私服中已经下载相应资源,并且在aliyun-proxy优先下载