环境: OS X EI Capitan 10.11.2 + JDK 1.8.0_66 + Maven 3.3.9
1. 配置Maven从Nexus下载构件
修改~/.m2/settings.xml,增加profiles部分,定义构件仓库和插件仓库均指向私服,并激活。
<settings>
......
<profiles>
<!— Configure the Nexus repository —>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>nexus</id>
<name>Nexus</name>
<layout>default</layout>
<url>http://localhost:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus</name>
<layout>default</layout>
<url>http://localhost:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
......
</settings>
2. 配置镜像
为了所有的请求都首先通过私服,修改~/.m2/settings.xml,增加mirrors镜像部分。
<settings>
......
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8081/nexus/content/groups/public/</url>
</mirror>
</mirrors>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://central/</url>
<releases>
<enabled>true</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>
......
</settings>
(1)这样配置镜像后,所有的请求都会首先从私服走。
(2)这里重写中央仓库的目的是允许快照版构件的下载,覆盖了超级POM中中央仓库的配置。
其中的url配置无关紧要,因为已经通过私服与连接中央仓库了。
(3)当Maven需要下载构件时,首先检查central,看该类型的构件是否支持,如果支持,再根据镜像匹配原则转而问私服。
3. 配置 Nexus 认证
如果只为代理外部公共仓库,Nexus的代理仓库就已经满足需要了。
组织内部的构件和无法从公共仓库获取的第三方的构件,需要部署在 Nexus上的宿主仓库中。
为了安全起见,需要在~/.m2/settings.xml中设置认证信息。
<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>welcome1</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>welcome1</password>
</server>
</servers>
参考文献:
1. 《Maven 实战》 徐晓斌著
1. 配置Maven从Nexus下载构件
修改~/.m2/settings.xml,增加profiles部分,定义构件仓库和插件仓库均指向私服,并激活。
<settings>
......
<profiles>
<!— Configure the Nexus repository —>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>nexus</id>
<name>Nexus</name>
<layout>default</layout>
<url>http://localhost:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>Nexus</name>
<layout>default</layout>
<url>http://localhost:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
......
</settings>
2. 配置镜像
为了所有的请求都首先通过私服,修改~/.m2/settings.xml,增加mirrors镜像部分。
<settings>
......
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8081/nexus/content/groups/public/</url>
</mirror>
</mirrors>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://central/</url>
<releases>
<enabled>true</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>
......
</settings>
(1)这样配置镜像后,所有的请求都会首先从私服走。
(2)这里重写中央仓库的目的是允许快照版构件的下载,覆盖了超级POM中中央仓库的配置。
其中的url配置无关紧要,因为已经通过私服与连接中央仓库了。
(3)当Maven需要下载构件时,首先检查central,看该类型的构件是否支持,如果支持,再根据镜像匹配原则转而问私服。
3. 配置 Nexus 认证
如果只为代理外部公共仓库,Nexus的代理仓库就已经满足需要了。
组织内部的构件和无法从公共仓库获取的第三方的构件,需要部署在 Nexus上的宿主仓库中。
为了安全起见,需要在~/.m2/settings.xml中设置认证信息。
<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>welcome1</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>welcome1</password>
</server>
</servers>
参考文献:
1. 《Maven 实战》 徐晓斌著
1 条评论:
java编程实例
阅读URL代码示例的内容
发表评论