maven私有仓库搭建之sonatype nexus篇

时间:2021-05-27 09:39:24

最近在准备开发一个java web的项目,由于项目较大需要将项目分解成几个模块给几位同学一起开发,那么必然涉及到多项目的构建问题。一起用过一段时的ant,现在刚好项目还没开始,有时间也学习一下如何使用maven。

maven在项目添加依赖后会去maven的central库https://repo.maven.apache.org/maven2下载所依赖的jar包,如果项目组的多位同学都去central库下载必然会影响效率,我们可以在局域网建一个私有库,来代理和缓存central库,这样可以提高我们得下载速度。与此同时,对于那些由于版权问题无法放大central库中的jar包,如数据库驱动等,我们也可以放到这个私有库中,给项目组其他成员使用。

准备工作

配置maven不再连接central库

首先我们配置maven,使maven不再直接使用central库,解压apache-maven-3.2.5-bin.zip,在apache-maven-3.2.5\conf\settings.xml文件的profiles标签中加入以下配置。
<profile>
<id>disable-central</id>
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
<releases>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
<releases>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
这段配置的意思是既不使用central库的releases的jar包也不使用snapshots的jar包(默认也是不能使用的)。默认使用central库的配置在apache-maven-3.2.5\lib\maven-model-builder-3.2.5.jar\\org\apache\maven\model\pom-4.0.0.xml。
启用这段配置
<activeProfiles>
<activeProfile>disable-central</activeProfile>
</activeProfiles>

eclipse中设置jdk和maven

设置jdk
maven私有仓库搭建之sonatype nexus篇

设置maven目录 maven私有仓库搭建之sonatype nexus篇
设置maven配置文件 maven私有仓库搭建之sonatype nexus篇

新建一个maven 工程测试

maven私有仓库搭建之sonatype nexus篇
这个时候由于无法连接central库,会提示新建工程失败 maven私有仓库搭建之sonatype nexus篇

创建私有库

将下载的nexus-2.11.1-01-bundle.zip解压后运行bin目录下的nexus start maven私有仓库搭建之sonatype nexus篇
我的nexus是搭建在一个liunx虚拟机上的
  1. 虚拟机设为host-only模式,将主机当前使用的网络连接共享;或者虚拟机设置为NAT模式,添加端口映射(下图)
  2. 关闭虚拟机的防火墙
maven私有仓库搭建之sonatype nexus篇
上图为host-only模式添加wlan共享,下图为nat模式添加端口映射maven私有仓库搭建之sonatype nexus篇
就可以访问虚拟机的nexus库,并进行管理了
maven私有仓库搭建之sonatype nexus篇
默认的用户名是admin,密码是admin123,默认nexus的库都给你建好了,至于各个库的含义可以自行百度,我们使用仓库组public就可以了

添加私有库到maven

和屏蔽central库一样,在配置文件中添加如下配置
    <profile>
<id>nexus</id>
<repositories>
<repository>
<id>packaging</id>
<name>Packaging</name>
<url>http://127.0.0.1:8081/nexus/content/groups/public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>packaging</id>
<name>Packaging</name>
<url>http://127.0.0.1:8081/nexus/content/groups/public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<activeProfiles><activeProfile>disable-central</activeProfile><activeProfile>nexus</activeProfile></activeProfiles>
eclipse更新配置文件后,在eclipse的maven视图中会显示配置的库
maven私有仓库搭建之sonatype nexus篇

再次新建一个maven工程测试

此时就可以使用eclipse创建maven工程了 maven私有仓库搭建之sonatype nexus篇 同时也可以看到在私有库的代理中缓存了所需的jar包
maven私有仓库搭建之sonatype nexus篇
那么下次项目组的其他人创建工程时就可以直接使用私有库中的jar包了。

Maven学习资源链接