Maven的setting.xml文件配置,该配置中使用了一个id为nexusProfile的profile,这个profile包含了相关的仓库配置,同时配置中又使用了activeProfile元素将这个profile激活,这样当执行Maven构件的时候,激活的profile会将仓库配置应用到项目中去。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<profiles>
<profile>
<!-- profile的id -->
<id>nexusProfile</id>
<repositories>
<repository>
<!-- 仓库id,repositories可以配置多个仓库,保证id不重复 -->
<id>nexus</id>
<!-- 仓库地址,即Nexus仓库组的地址 -->
<url>http://nexus.m2plat.cn/repository/maven-public/</url>
<!-- 是否下载releases构件 -->
<releases>
<enabled>true</enabled>
</releases>
<!-- 是否下载snapshots构件 -->
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<!-- 插件仓库,Maven的运行依赖插件,也需要从私服下载插件 -->
<pluginRepository>
<!-- 插件仓库的id不允许重复,如果重复后边配置会覆盖前边 -->
<id>nexus</id>
<url>http://nexus.m2plat.cn/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexusProfile</activeProfile>
</activeProfiles>
配置镜像让Maven只使用私服,配置后本机所有的Maven项目都会从Nexus私服下载构件:
1
2
3
4
5
6
7
8
9
10
<!-- Maven对全部仓库的访问全部拦截到私服的public仓库中去 -->
<!-- 如果私服关闭,那么就不能访问中央工厂了-->
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<name>Local Repository</name>
<url>http://127.0.0.1:8081/nexus/content/groups/public</url>
</mirror>
</mirrors>
配置Maven部署构件到Nexus:
1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- 项目部署到私服配置 -->
<distributionManagement> <!-- 远程部署管理信息 -->
<repository> <!-- 部署项目产生的构件到远程仓库需要的信息 -->
<id>releases</id>
<name>Nexus Release Repository</name>
<url>http://127.0.0.1:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository> <!-- 如果没有配置该元素,默认部署到repository元素配置的仓库 -->
<id>snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://127.0.0.1:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
Nexus仓库对匿名用户是只读的,所以为了能够部署构件,还需要在setting.xml文件中配置认证信息:
1
2
3
4
5
6
7
8
9
10
11
12
13
<!--私服的验证信息-->
<servers>
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
配置好以后,就可以通过Maven的deploy命令,将项目的jar包部署到Nexus上,供其他项目组模块使用。大大加快了项目组的开发效率。