nexus上传自定义starter
- 1、普通jar包和springboot的starter
- 1.1、starter上传简介
- 1.2、上传方法
- 2.1.1、setting.xml文件
- 2.1.2、项目中的pom文件
- 1.3、具体部署
- 2、父pom文件上传
这里我们主要讲解两种,一种是jar包上传,包含普通jar包和springboot的starter包,另一种就是父级maven的。pom文件。(生成的包尽量用RELEASE)
1、普通jar包和springboot的starter
说一下starter吧,普通jar包也是如此:
1.1、starter上传简介
在我们自定义了springboot的starter后,starter一般有是一个父子级maven工程,如下图所示,对于 autoconfigure 来说是我们真正执行具体功能的子maven工程,starter是给外部系统提供调用的子maven工程,而最外层的父maven工程不用上传到nexus私服库。
1.2、上传方法
我这块介绍一个配合IDEA上传的方法,在我们的额maven项目工程中,右边有一个部署的操作,maven的setting文件配合这个按钮可以实现在IDEA工程中直接上传starter到相应的私服仓库,按钮如下图所示:
具体我们需要改以下几个地方
1、该项目配置的setting.xml文件。
2、我们写的自定义starter里面的pom.xml文件,每一个pom文件都要配置。
2.1.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.1.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>
1.3、具体部署
执行deploy按钮依次部署 autoconfigure 包和 starter 包,如果成功,去 nexus 地址看如下图所示,如果报错,先去检查自己的setting文件中上面配置的密码与地址对应的id是否一致,否则无法找到上传秘钥,其他问题百度,成功图如下,在其它项目就可以去引用了。
2、父pom文件上传
只需要在pom文件中加入
pom
项目中只需要一个pom文件即可