前言:
传统的SpringMVC项目在tomcat中运行,我们更新代码只需要替换对应的.class文件即可。但 SpringBoot 项目一般会以jar形式运行,代码都是一个整体,修改局部代码也要替换整个jar包,这在某些jar包偏大的场景下不方便。
一、默认打包方式:
1、pom插件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
这种方式默认会把代码、lib、配置文件一起打成一个jar包。
2、打包:maven、clean、install。
在工程target目录下会看到如下 jar 包:
jar 包大约 31M。
3、运行:java -jar xxx.jar 即可
二、自定义打包方式:
可分离lib、配置文件。
1、pom插件:
<build>
<plugins>
<!-- 默认 -->
<!--<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>target/lib</outputDirectory>
<excludeTransitive>false</excludeTransitive>
<stripVersion>false</stripVersion>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<!--此处修改为你的应用入口类全路径-->
<mainClass>com.coolron.SpringbootApplication</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
<!-- 排除了我们需要外置的文件 -->
<resources>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
<excludes>
<exclude>*.properties</exclude>
<!-- <exclude>static/**</exclude>
<exclude>templates/**</exclude>
<exclude>*.yml</exclude>
<exclude>*.xml</exclude>
<exclude>*.txt</exclude>-->
</excludes>
</resource>
</resources>
</build>
2、打包:maven、clean、install。
在工程target目录下会看到如下:
注意:此处分离了lib包,jar包只有74KB。
3、运行:
3.1、将配置打包时排除的配置文件复制到 jar 同级目录。
3.2、java -jar xxx.jar 即可。
Tips:
- 打包的方式不止maven install一种,其他命令也可。
- 自定义打包若排除了配置文件,打包时可能会出现错误,极大的可能是由于package之前的test,跳过test即可。
- 微服务架构的项目中jar包一般非常小、配置文件也会由配置中心统一管理,所以一般会采取默认的打包方式。
个人学习分享
更多 springboot、springcloud、docker 文章关注微信公众号吧: