我们在工作中会将搭建一个组件项目给到其他组或者项目使用。一般都是要maven项目打包成jar包并发布到Nexus的maven仓库供其他项目下载使用。
准备:
需要打成jar的项目;
Nexus搭建的maven远程仓库;
一个测试jar包的其他项目;
一、打成jar包
<!-- 打成jar供其他项目使用
1、不能使用默认的springboot打包方式 2、剔除启动类及测试类 3、剔除application配置文件 -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source> <!--指明源码用的Jdk版本-->
<target>1.8</target> <!--指明打包后的Jdk版本-->
</configuration>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<!--打包时需要被排除的文件-->
<exclude>application.yml</exclude>
</excludes>
</resource>
</resources>
</build>
二、jar包发布(两种方式)
2.1 将jar发布在本地maven(install命令),其他本地项目直接pom引入即可。
2.2 jar包发布到Nexus搭建的maven中央仓库,其他项目配置远程仓库下载使用。
本地maven的setting.xml配置
<server>
<id>xx-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>xx-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
项目pom配置
<repositories>
<repository>
<id>xx-releases</id>
<name>xx nexus</name>
<url>http://192.168.0.166:8081/nexus/content/groups/xx-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>xx-releases</id>
<name>releases</name>
<url>http://ip:port/nexus/content/repositories/xx-releases/</url>
</repository>
<snapshotRepository>
<id>xx-snapshots</id>
<name>snapshots</name>
<url>http://ip:port/nexus/content/repositories/xx-snapshots/</url>
</snapshotRepository>
</distributionManagement>
注意:
1、setting.xml中的id要和pom中的id要对应。
2、pom中的url分别是Nexus中的maven仓库对应的路径,根据自己实际情况配置。
执行maven deploy
三、其他项目引入jar包使用
<!-- 远程仓库 -->
<repositories>
<repository>
<id>xx-releases</id>
<name>xx nexus</name>
<url>http://ip:port/nexus/content/groups/xx-public/</url>
</repository>
</repositories>
<!-- 引入依赖 对应的groupId和artifactId -->
<dependencies>
<dependency>
<groupId>***</groupId>
<artifactId>***</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>