文章目录
一、背景
随着项目越来越多了,如何才能把基础服务的打包方式统一起来,并且可以实现按照我们的要求来生成jar包,
- 我们通过使用
maven
的assembly
插件自定义打包、 - 也可以使用SpringBoot集成的自定义打包插件
spring-boot-maven-plugin
- 或者SpringBoot启动jar包时使用
-Dspring.profiles.active=dev
命令行执行时自定义使用哪个配置文件。
1. maven-jar-plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<!-- 此处为程序主入口-->
<mainClass>com.jd.soc.statistic.service.SocStatisticServiceApplication</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
2、spring-boot-maven-plugin
参考:
spring-boot-maven-plugin maven(三)最详细的profile的使用:
SpringBoot的打包插件会将所有依赖的jar包都打到最后的主jar包中,最终只需要启动主jar包。
非常方便,但是如果依赖的jar包太多,主jar包会臃肿。
且上传jar包到生产环境、预发环境中时,每次都需要重传一个超大的jar包过去。
<build>
<!-- 打jar包插件 -->
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.1.RELEASE</version>
<configuration>
<!-- 指定该 Main Class为全局的唯一入口 -->
<mainClass>com.jd.soc.statistic.service.SocStatisticServiceApplication</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/resources/</directory>
<!--打包时先排除掉三个文件夹-->
<excludes>
<exclude>dev/*