Maven构件分发
mvn install是分发到本地的maven仓库,mvn deploy可以将代码分发到远程的maven仓库中,这样所有依赖本jar的都可以看到。
首先需要配置pom的distributionManagement来制定分发的路径
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://192.168.0.1:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://192.168.0.1:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
snapshot为开发过程中的版本,实时,但不稳定,release版本则比较稳定。Maven会根据项目的版本来判断将构件分发到哪个仓库。
分发构件到远程仓库需要认证,如果你没有配置任何认证信息,你往往会得到401错误。这个时候,如下在settings.xml中配置认证信息:
<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
settings.xml中server元素下id的值必须与POM中repository或snapshotRepository下id的值完全一致。
将认证信息放到settings下而非POM中,是因为POM往往是它人可见的,而settings.xml是本地的。