Nexus 充当maven私服,还提供强大的仓库管理、构件搜索等功能。
一、私服配置
1.1. 架构部署图
结构图
如图:为maven-nexus-proxymaven的交互架构图
蓝色虚线为使用外网代理私服的路线
红色虚线为使用内网资源转移下载路线
##外网
maven本地仓库 指定本地位置缓存下载的jar 默认为官方中央仓库 可配置为私服代理(阿里私服)
nexus私服仓库 通过代理仓库下载缓存jar 提供给局域网内各个maven资源
maven本地仓库 可以通过发布jar到nexus私服进行管理 提供给其他用户使用
##内网
maven本地仓库 指定本地位置缓存下载的jar 必须配置私服 否则下载时超时
nexus私服仓库 通过代理仓库下载缓存jar 如果内网有穿透的机子可以使用代理,若无则要通过存储媒介在外网下载jar后 内网上传至nexus私服仓库 提供给局域网内各个maven资源
maven本地仓库 可以通过发布jar到nexus私服进行管理 提供给其他用户使用
部署图
1.2. Maven详细配置
如果配置在maven setting中则为全局配置 如果配置为项目pom中则为项目配置
1.2.1. 全局配置
配置在maven setting
1)、配置认证信息(必须配置在setting中)
Nexus的仓库对于匿名用户是只读的。为了能够部署构件,还需要在setting.xml中的servers配置认证信息。
<server>
<id>nexus_release</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus_snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
2)、配置镜像地址
在settings.xml 文件的 mirrors 内添加以下镜像地址
<!--如同使用proxy指定下载点 不设置时直接到中央仓库下载-->
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8081/repository/maven-public/</url>
</mirror>
3)、配置Profile
在profiles内添加以下Profile 配置
<!--动态配置参数-->
<profile>
<id>nexus</id>
<!--Enable snapshots for the built in central repo to direct -->
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>nexus_release</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>false</enabled></snapshots>
</repository>
<repository>
<id>nexus_snapshots</id>
<url>http://central</url>
<releases><enabled>false</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
4)、配置activeProfile
在settings内添加以下配置
<!--激活配置参数-->
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
1.2.2. 项目配置
修改项目pom.xml文件 (父pom即可)
配置下载使用maven公共库maven-group
1)、仓库配置
<!--仓库配置 如同maven 配置镜像-->
<repositories>
<repository>
<id>maven-public</id>
<name>maven-public</name>
<url>http://localhost:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</repository>
</repositories>
<!--插件库配置 -->
<pluginRepositories>
<pluginRepository>
<id>mmaven-public</id>
<name>maven-public</name>
<url>http://localhost:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
2)、配置发布到maven本地库 maven-releases以及maven-snapshots
3)、使用profile(可省略)
<profiles>
<profile>
<id>env-dev</id>
<!--命名唯一-->
<repositories>
<repository>
<id>maven-public</id>
<name>maven-public</name>
<url>http://localhost:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven-public</id>
<name>maven-public</name>
<url>http://localhost:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
<!--配置仓库管理-->
<distributionManagement>
<!--设置发布稳定仓库-->
<repository>
<id>nexus_release</id>
<!--id必须与setting中对应 使用setting配置用户-->
<name>User Project Release</name>
<url>http://localhost:8081/repository/maven-releases/</url>
</repository>
<!--设置发布的快照库-->
<snapshotRepository>
<id>nexus_snapshots</id>
<!--id必须与setting中对应 使用setting配置用户-->
<name>User Project SNAPSHOTS</name>
<url>http://localhost:8081/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
</profile>
<!--以下省略其他profile-->
</profiles>
二、私服使用
https://www.processon.com/view/link/5cb6e3b7e4b08b66b9aee473
Eclipse上部署
- 选择你需要部署到私服的项目,然后右击,选择Run As -> Run Configurations...
- 保存后点击Run。成功后在Nexus上的对应宿主仓库里就可以看到对应jar啦!
【Quality】 Quality is the value to someone who matters。做测试,首先要找到这个someone是谁,以及这个 someone重视的 value是什么。