Maven+SpringBoot打包可执行可依赖的jar包
程序员文章站
2022-03-02 17:33:13
...
笔者在工作中曾经遇到过这样的场景——一个Maven+SpringBoot的工程,既需要其生成的jar包能够直接运行,又可以作为其它工程的依赖包。下面就说一说解决这个场景的思路:
1、spring-boot-maven-plugin默认打包出来的jar是不可依赖的
如果你在SpringBoot工程中使用了spring-boot-maven-plugin的默认配置build,那么所生成的jar包虽然是可执行的,但却是不可被依赖的。
2、打两个jar包,一个用来直接执行,一个用作依赖包
通过修改pom.xml中spring-boot-maven-plugin的配置,可以让所在工程一次打包生成两个jar包,其中XXX.jar可作为其它工程的依赖,XXX-exec.jar可被执行。参考代码如下:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration><!-- 指定该Main Class为全局的唯一入口 -->
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>UTF-8</encoding>
<mainClass>com.cmsz.rjzc.ComponentrepApplication</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中 -->
</goals>
<!--可以生成不含依赖包的不可执行Jar包 -->
<configuration>
<classifier>exec</classifier>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
参考文:https://blog.csdn.net/guduyishuai/article/details/60968728