16.4. 配置Maven使用Nexus

要使用Nexus,你需要配置Maven去检查Nexus而非公共的仓库。为此,你需要编辑在你的~/.m2/settings.xml文件中的mirror配置。首先,我们会演示如何配置Maven去检查你的Nexus安装而非直接从中央Maven仓库获取构件。在我们覆盖了中央仓库并演示了Nexus可以工作之后,我们会转回来,提供一个更实际的,包含发布版和快照版的配置集合。

16.4.1. 使用Nexus中央代理仓库

要配置Maven去查阅Nexus而非中央Maven仓库,在你的~/.m2/settings.xml文件中添加如Example 16.1, “为Nexus配置Maven Settings (~/.m2/settings.xml)”的mirror配置。

Example 16.1. 为Nexus配置Maven Settings (~/.m2/settings.xml)

<?xml version="1.0"?>
<settings>
  ...
  <mirrors>
    <mirror>
      <id>Nexus</id>
      <name>Nexus Public Mirror</name>
      <url>http://localhost:8081/nexus/content/groups/public</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>
  ...
</settings>

在你将Nexus配置成所有仓库的镜像之后,Maven现在会从本地的Nexus安装查阅,而非去外面查阅中央Maven仓库。如果对Nexus有一个构件请求,本地的Nexus安装会提供这个构件。如果Nexus没有这个构件,Nexus会从远程仓库获取这个构件,然后添加至远程仓库的本地镜像。

要测试Nexus如何工作的,从你的本地Maven仓库中删除一个目录,然后运行Maven构建。如果你删除了~/.m2/repository/org,你会删除一大堆的依赖(包括Maven 插件)。下次你运行Maven的时候,你应该看到如下的信息:

$ mvn clean install
...
Downloading: http://localhost:8081/nexus/content/groups/public/...
3K downloaded

这个输出应该能让你相信Maven正和你本地的Nexus通讯,而非向外面的中央Maven仓库获取构件。在你基于本地的Nexus运行过一些构建之后,你就可以浏览缓存在你本地Nexus中的内容。登陆Nexus然后点击导航菜单的左边的构件搜索。在搜索框中输入"maven",你应该能看到一些像下面的内容。