前面有文章写到使用​​Nexus3搭建私有Maven私有仓库​​这篇文章主要简介Maven怎么使用Nexus3搭建的私有仓库,包括私有仓库类型介绍,Maven拉取私有仓库,本地jar推送私有仓库。

Nexus3配置

1.Nexus3仓库访问模式

默认的模式我不记得了,这里访问模式就是登录Nexus3系统查看仓库需不需要账号密码!

Maven私有仓库使用_maven


这是访问需要账号密码的,那么我们可以使用admin账号设置为不需要账号密码访问仓库!

Maven私有仓库使用_私有仓库_02


那么此时不要账号密码也可以访问

Maven私有仓库使用_私有仓库_03


2.Nexus3仓库类型介绍

Maven私有仓库使用_私有仓库_04


Group: 这是一个仓库聚合的概念,用户仓库地址选择Group的地址,即可访问Group中配置的,用于方便开发人员自己设定的仓库。maven-public就是一个Group类型的仓库,内部设置了多个仓库,访问顺序取决于配置顺序,3.x默认Releases,Snapshots,Central,当然你也可以自己设置。

Hosted: 私有仓库,内部项目的发布仓库,专门用来存储我们自己生成的jar文件

3rd party: 未发布到公网的第三方jar (3.x去除了)

Snapshots: 本地项目的快照仓库

Releases: 本地项目发布的正式版本

Proxy: 代理类型,从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage属性的值即被代理的远程仓库的路径),如可配置阿里云maven仓库

Central: 中央仓库

Apache Snapshots: Apache专用快照仓库(3.x去除了)3.修改中央仓库的地址

由于Maven的中央仓库在国外,所以下载速度比较慢,那么需要修改中央仓库地址!

Maven私有仓库使用_推送_05


Maven私有仓库使用_maven_06


替换

Maven私有仓库使用_推送_07


阿里云Maven仓库

http://maven.aliyun.com/nexus/content/groups/public

记得点击save

4.创建聚合仓库

Maven私有仓库使用_私有仓库_08


Maven私有仓库使用_私有仓库_09


Maven私有仓库使用_私有仓库_10


创建成功!

本地Maven操作

1.Maven推送插件配置
POM文件配置Maven上传插件配置

<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<release>11</release>
</configuration>
</plugin>
<!--发布代码Jar插件-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.7</version>
</plugin>
<!--发布源码插件-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>

2.确定依赖坐标

<groupId>com.sencorsta</groupId><!--组织名-->
<artifactId>idsCore</artifactId><!--项目名-->
<version>8.8.8-SNAPSHOT</version>
<!--版本类型,这里需要注意一下,写-SNAPSHO后缀就会推送到快照仓库,不加后缀或者设置为-RELEASE就会推送到发行版仓库->

3.配置推送仓库地址

<repository>
<id>releases</id>
<name>releases</name>
<url>http://xxx.xxx.x.xxx:8800/repository/maven-releases/</url>
<uniqueVersion>true</uniqueVersion>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>snapshots</name>
<url>http://xxx.xxx.x.xxx:8800/repository/maven-snapshots/</url>
</snapshotRepository>

这里是配置了两个仓库推送地址,但是只会推送到具体的一个仓库地址中去,判断依据就是上面版本信息中的,如果没有加-SNAPSHOT这个后缀,那么就会推送到发行仓库中,也就是maven-releases仓库。由于推送的权利不是谁都有的,所以需要有一个身份验证的操作,那么这里的id就是起到这样的作用的,这里的id需要和下面settings.xml中的serverid保持一致,否则推送失败,这里的那么可以随便起!

4.配置本地Maven的settings.xml
找到servers标签

<server>
<id>tao</id><!--这个可以随便起但是POM文件中的推送仓库id要与这里保持一致,否则推送失败-->
<username>Nexus3的登录名</username>
<password>Nexus3的密码,这里注意如设置特殊字符的需要转义</password>
</server>

5.推送快照依赖

Maven私有仓库使用_私有仓库_11


推送成功

Maven私有仓库使用_推送_12


Maven私有仓库使用_私有仓库_13


推送发行版只需要将版本后的-SNAPSHOT去掉即可

Maven私有仓库使用_私有仓库_14


Maven私有仓库使用_推送_15

6.拉取私有仓库依赖

这里需要注意一下,前面刚开始设置Nexus3仓库访问模式决定拉取私有仓库依赖是的策略,如果Nexus3仓库访问模式是匿名模式,那么拉取依赖就不需要账号密码,如果Nexus3仓库访问模式设置必须账号密码,那么拉取依赖时就必须设置账号密码,否者无法拉取!

确保本地仓库总没有8.8.8的依赖

Maven私有仓库使用_推送_16


设置本地settings.xml的私有仓库地址

Maven私有仓库使用_maven_17


找到settings.xml中的标签

<mirror>
<id>tao</id>
<name>my-maven</name>
<url>http://xxx.xxx.x.xxx:8800/repository/my-maven/</url>
<mirrorOf>*</mirrorOf>
</mirror>
<!--mirror配置成 * 就代表我们通过访问阿里云的maven仓库从而访问网路上所有的远程仓库,如果配置成central,
就代表我们访问阿里云的central仓库,就是阿里的中央库(http://central.maven.org/maven2),如果配置成repo1,
就代表通过阿里云访问http://repo1.maven.org/maven2,阿里云和这些远程仓库之间必须可以镜像,存在一定的镜像关系。-->

拉取测试

Maven私有仓库使用_推送_18


拉取成功

Maven私有仓库使用_私有仓库_19