1. maven私服的介绍:

maven仓库分为两大类:1. 本地仓库,2.远程仓库,在远程仓库中又分为3种:中央仓库、私服、其他公共库。
maven私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的maven用户使用。当maven需要下载构建的时候,它从私服请求,如果私服上不存在该构建,则从外部的远程仓库下载,缓存在私服上字后,再为maven的下载请求提供服务。我们还可以把一些无法从外部仓库下载到的构建上传到私服上。
maven私服的特性:
(1)节省自己的外网带宽:减少重复请求造成的外网带宽消耗;
(2)加速maven构建:如果项目配置了很多外部远程仓库(非私服)的时候,构建速度就会大大降低,因为所有的jar包都需要从这些远程仓库再下载;
(3)部署第三方构建:有些构建无法从外部仓库获得的时候,我们可以把这些构建部署到内部仓库(私服)中,供maven项目使用;
(4)提高稳定性,增强控制:网络不稳定的时候,maven构建也会变得不稳定,一些私服软件还提供了其他功能;
(5)降低中央仓库的负荷:maven中央仓库被请求的数量是巨大的,配置私服可以大大降低中央仓库的压力,程序请求jar包可以直接从私服中获取,而不是远程中央仓库。

2. nexus私服仓库介绍:

nexus进入后,可以看见如上界面,browse中就是所有的仓库目录。
type表示了仓库的类别:proxy、hosted、group。
proxy:代理的远程仓库,如:阿里云等;
hosted:是指本地或者内部项目仓库;
group:仓库组,包含其他的几个仓库。

3. 创建仓库:



按照上图选择自己要创建的仓库,创建完成后就可以在页面的repository中查看到自己创建的仓库。

4. 从私服上下载自己想要的jar包:

如果只是本项目需要从私服上下载jar包,那么就只是修改当前项目的pom文件就可;如果是针对所有的项目,则需要修改本地的maven的配置文件settings。

4.1 针对settings的配置:

(1)配置server:
<server>
<id>nexus</id>
<username>admin</username>
<password>admin123</password>
</server>


(2)配置mirror:
<mirror>
<id>nexus</id>
<mirrorOf>central</mirrorOf>
<url>http://localhost:8081/repository/maven-public/</url>
</mirror>

注意: mirroOf标签要设置为central,表示所有对中央仓库的请求都会走url的地址。不能配置为*,如果为*,则所有的请求都会走url地址,无法获取到jar包。

url是要对应私服上仓库的镜像。在仓库后的copy可以直接获取:


因为要获取的包可能位于不同的仓库,所以可以直接配置group仓库,这样就能从多个仓库下获取jar包。
关于group仓库中的配置如下:


这里的members包括了group中可以用的仓库。
(3)配置模板
<profile>          <id>nexus</id>          <repositories>            <repository>              <id>nexus</id>              <url>http://xxxx:8081/repository/maven-public/</url>              <releases><enabled>true</enabled><updatePolicy>always</updatePolicy></releases>              <snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy></snapshots>            </repository>             </repositories>          <pluginRepositories>             <pluginRepository>                    <id>public</id>                     <url>http://xxxxx:8081/repository/maven-public/</url>                     <releases><enabled>true</enabled><updatePolicy>always</updatePolicy>                 </releases>                     <snapshots><enabled>true</enabled><updatePolicy>always</updatePolicy>		 </snapshots>                   </pluginRepository>               </pluginRepositories>     </profile> 复制代码


这里的updatePolicy标签要进行配置为true,每次maven的配置修改后,都会进行同步更新。
模板的url就是nexu中group的地址。模板的id为nexus,下面进行模板激活,就会对应该id。
(4)激活模板:
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
这里的activeProfile标签配置的就是要激活的模板的id。

4.2 项目中pom文件的配置:

找到要下载的jar包的依赖地址,可以从私服获取:


然后在pom中进行配置:


之后从私服进行下载,就能下载到项目中:


5. 上传本地jar包到私服:

5.1 配置settings:

<server>
	<id>releases</id>
	<username>admin</username>
	<password>admin123</password>
</server>
<server>
	<id>snapshots</id>
	<username>admin</username>
	<password>admin123</password>
</server>复制代码


5.2 在要上传的项目的pom中添加配置:


这里的<repository>和<snapshotRepository>标签中url的地址,可以从仓库地址通过copy获取:


5.3 执行deploy命令,将jar包发布到私服。


6. 手动上传单个jar包到仓库,这里上传的一般都是hosted类的仓库,即自己创建的仓库。



7. 给私服配置代理

虽然搭建了私服,但是如果私服中没有我们需要的jar包,还是会去中央仓库下载,这时速度同样会非常慢,我们就需要在nexus中添加阿里的代理服务器:

7.1 创建代理仓库:


7.2 将创建的仓库添加到仓库组中:



  • 私信