要使用Nexus,你需要配置Maven去检查Nexus而非公共的仓库。为此,你需要编辑在你的~/.m2/settings.xml
文件中的mirror配置。首先,我们会演示如何配置Maven去检查你的Nexus安装而非直接从中央Maven仓库获取构件。在我们覆盖了中央仓库并演示了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",你应该能看到一些像下面的内容。