一 、Nexus仓库介绍
首先介绍一下Nexus的四个仓库的结构:
maven-central 代理仓库,代理了maven的中央仓库:https://repo1.maven.org/maven2/;
maven-public 仓库组,另外三个仓库都归属于这个组,所以我们的maven配置文件只需配置这个仓库的地址,就可以使用另外三个仓库的组件;
maven-releases 稳定版本仓库,这个仓库存放我们项目稳定版本的组件;
maven-snapshots 快照版本仓库,这个仓库存放我们开发过程中的快照版本;
二、maven配置
2.1 配置仓库地址
在/maven/cong/的setting.xml中配置Nexus仓库地址,在<mirrors></mirrors>标签中:
<mirror><id>nexus</id><mirrorOf>*</mirrorOf><name>测试中央仓库</name><url>http://127.0.0.1:8081/repository/maven-public</url>
</mirror>
由于maven-public仓库是一个组,包含了另外三个仓库:maven-central,maven-releases,maven-snapshots。
2.2 配置服务认证信息
我们想把稳定版本或者快照版本的jar包上传到对应的仓库时,需要校验认证信息,则需要在<servers></servers>标签中配置以下内容:
<server> <id>releases</id> <username>deployer</username> <password>123456</password>
</server>
<server> <id>snapshots</id><username>deployer</username> <password>123456</password>
</server>
三、pom.xml配置
在我们执行IDEA的deploy操作时,需要我们项目的pom.xml中配置如下信息:
<distributionManagement><repository><!--稳定仓库:id和maven配置的<server>标签的id保持一致--><id>releases</id> <url>http://127.0.0.1:8081/repository/maven-releases/</url></repository><snapshotRepository><!--快照仓库:id和maven配置的<server>标签的id保持一致--><id>snapshots</id><url>http://127.0.0.1:8081/repository/maven-snapshots/</url></snapshotRepository>
</distributionManagement>
上述配置中的<id>标签的值一定要和maven配置中的<id>一致;
在deploy命令执行时,maven会根据pom.xml中的版本号,来自动匹配到上传到哪个仓库
以 -SNAPSHOT 结尾,则上传到快照仓库
不以 -SNAPSHOT 结尾,则上传到稳定版本仓库
注意:在上传仓库时,pom.xml需要把插件:spring-boot-maven-plugin 注释掉,不然上传到仓库的是运行全量包,而不是工具包;