nexus上传自定义starter
- 1、starter上传简介
- 2、上传方法
- 2.1、setting.xml文件
- 2.2、项目中的pom文件
- 3、具体部署
1、starter上传简介
在我们自定义了springboot的starter后,starter一般有是一个父子级maven工程,如下图所示,对于 autoconfigure 来说是我们真正执行具体功能的子maven工程,starter是给外部系统提供调用的子maven工程,而最外层的父maven工程不用上传到nexus私服库。
2、上传方法
我这块介绍一个配合IDEA上传的方法,在我们的额maven项目工程中,右边有一个部署的操作,maven的setting文件配合这个按钮可以实现在IDEA工程中直接上传starter到相应的私服仓库,按钮如下图所示:
具体我们需要改以下几个地方
1、该项目配置的setting.xml文件。
2、我们写的自定义starter里面的pom.xml文件,每一个pom文件都要配置。
2.1、setting.xml文件
1、配置上传私服库的账号密码,一个正式版本,一个快照版本,在setting.xml文件的配置内容如下:
<servers><server><!--上传到私服仓库时需要用到的账号密码--><!--这是server的id(注意不是用户登陆的id),该id与distributionManagement中repository元素的id相匹配。--><id>nexus-releases</id><!--鉴权用户名。鉴权用户名和鉴权密码表示服务器认证所需要的登录名和密码。 --><username>admin</username><password>123456</password></server><server><id>nexus-snapshots</id><username>admin</username><password>123456</password></server>
</servers>
2、配置真正的私服地址以及仓库,在setting.xml文件中的profiles属性下面加入如下配置:
<profiles><profile><id>nexus</id><repositories><repository><!--仓库 id,repositories 可以配置多个仓库,保证 id 不重复--><id>myNexus</id><!--仓库地址,即 nexus 仓库组的地址--><url>http://ip:port/xxx/</url><!--是否下载 releases 构件--><releases><enabled>true</enabled></releases><!--是否下载 snapshots 构件--><snapshots><enabled>true</enabled></snapshots></repository></repositories></profile>
</profiles>
2.2、项目中的pom文件
在具体的项目中配置如下东西,别问为什么。
<distributionManagement><repository><id>nexus-releases</id><name>nexus-releases</name><url>http://ip:port/xxx/</url></repository><snapshotRepository><id>nexus-snapshots</id><name>nexus-snapshots</name><url>http://ip:port/xxx/</url></snapshotRepository>
</distributionManagement>
3、具体部署
执行deploy按钮依次部署 autoconfigure 包和 starter 包,如果成功,去 nexus 地址看如下图所示,如果报错,先去检查自己的setting文件中上面配置的密码与地址对应的id是否一致,否则无法找到上传秘钥,其他问题百度,成功图如下,在其它项目就可以去引用了。