Maven 项目如何使用 Nexus
在 Maven 项目中使用 Nexus 主要分为两部分:从 Nexus 下载依赖和向 Nexus 发布构件。
从 Nexus 中下载依赖
如果想让 Maven 从 Nexus 中下载依赖,需要让 Maven "认识" Nexus。
配置 Maven 使用 Nexus 作为镜像
为了让 Maven 从 Nexus 下载公共依赖,你需要将 Nexus 配置为 Maven 中央仓库的镜像(Mirror)。这样,所有对中央仓库的请求都会被重定向到你的 Nexus 私服。
打开你的 Maven 配置目录(默认在 ~/.m2/)下的 settings.xml 文件,改为如下配置:
xml
<settings>
<mirrors>
<mirror>
<id>nexus-public</id>
<mirrorOf>*</mirrorOf>
<url>http://your-nexus-server/repository/maven-public/</url>
</mirror>
</mirrors>
</settings>
</servers>
<server>
<id>nexus-public</id>
<username>admin</username>
<password>123456</password>
</server>
</servers>
配置详解:
- : 定义一个镜像仓库。
- : 镜像的唯一标识,可以任意命名。
- : 指定要代理哪个仓库。central 指代理 Maven 中央仓库。* 指代理所有外部仓库,包括中央仓库。
- : 你的 Nexus 私服的公共分组仓库的 URL,这里指定的是 maven-public 分组仓库。
servers 中配置了一个服务器的用户名和密码,这里的 id 和我们 mirror 中的 id 保持一致,表示这个认证信息是专门为 nexus-public 这个镜像仓库配置的。username 和 password 分别配置的是用户名和密码。
通常,Nexus 的公共仓库(maven-public)是匿名可访问的。它是一个聚合仓库,将多个外部仓库(如 Maven Central)的内容聚合在一起,并提供给内部用户,所以不需要配置用户名和密码。
配置完成后,当你执行 mvn clean install 时,Maven 就会自动从你的 Nexus 私服下载依赖。
向 Nexus 发布构件
如果你想将自己的项目发布(deploy)到 Nexus,让团队其他成员使用,你需要进行两步配置。
第一步:在 pom.xml 中配置发布地址。
在你的项目的 pom.xml 文件中,添加 配置,指定构件要发布的仓库地址。
xml
<project>
<distributionManagement>
<repository>
<id>nexus-releases</id>
<url>http://your-nexus-server/repository/maven-releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<url>http://your-nexus-server/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
</project>
配置详解:
- : 定义构件的发布管理。
- : 定义正式发布版本(Release)的仓库地址。
- : 定义快照版本(Snapshot)的仓库地址。
- : 这个 id 必须和下一步 settings.xml 中配置的 的 id 一致。
第二步:在 settings.xml 中配置认证信息。
因为向 Nexus 发布构件需要权限(如果 Nexus 你设置了不能匿名访问),所以你需要在 settings.xml 中配置用户名和密码。
这里的 id (Maven 配置文件)要和 distributionManagement (Maven 项目的配置文件)中的 id 对应上。
xml
<settings>
<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>123456</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>123456</password>
</server>
</servers>
</settings>
配置详解:
- : 定义一个认证服务器。
- : 必须和 pom.xml 中的 或 的 id 保持一致。
- 和 : 登录 Nexus 的用户名和密码。
完成以上配置后,你就可以在项目根目录执行以下命令来发布构件了:
xml
mvn clean deploy