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>