9.6 部署构件至Nexus
如果只为代理外部公共仓库,那么Nexus的代理仓库就已经能够完全满足需要了。对于另一类Nexus仓库——宿主仓库来说,它们的主要作用是储存组织内部的,或者一些无法从公共仓库中获得的第三方构件,供大家下载使用。用户可以配置Maven自动部署构件至Nexus的宿主仓库,也可以通过界面手动上传构件。
9.6.1 使用Maven部署构件至Nexus
日常开发生成的快照版本构件可以直接部署到Nexus中策略为Snapshot的宿主仓库中,项目正式发布的构件则应该部署到Nexus中策略为Release的宿主仓库中。POM的配置方式具体见5.4节,代码清单9-4列出了一段典型的配置。
代码清单9-4 配置Maven部署构件至Nexus
<project>
……
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Releases Repository</name>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshots Repository</name>
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
……
</project>
Nexus的仓库对于匿名用户是只读的。为了能够部署构件,还需要在settings.xml中配置认证信息,如代码清单9-5所示。
代码清单9-5 为部署构件至Nexus配置认证信息
<settings>
……
<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>*</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>*</password>
</server>
</servers>
……
</settings>