一、说明
分享一种springboot项目的打包jar的方式,特点是打成的jar内部,会包含第三方依赖的jar,而不是第三方jar的解压形式。从而不会破坏第三方jar的类加载环境。这种方式不是我最理想的,我最喜欢的方式可以查找之前的博客,不过可以分享出来供大家学习。
二、解决方案
在要打包输出的子模块中的pom.xml中配置下列代码。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
三、执行
mvn install -DskipTests 或 mvn install -Dmaven.test.skip=true
四、结果
在子模块的/target目录下即可生成一个大的jar,jar中自动包含了项目。
很多插件,包括eclipse的插件,其实都是这么搞的。但这样打包,有其优点,自然也有其缺点。优点自然是不会有什么外在依赖,但缺点也很明显:包的体积会比较大;如果要更新引用到的jar,需要重新打包;不符合重用原则。
对比来说,这有点类似C/C++里面使用静态库。
我一般也不用这种,我使用这种方式,可以把配置文件暴露出来,参考我的文章 《通过Maven发部项目的最实用配置(http://www.dearcloud.cn/archives/360)》