Spring Boot Package

1. 使用 spring-boot-maven-plugin 打包

1
mvn package

生成一个可执行的 jar 文件

2. 自定义打包

由于默认打包方式生成的 jar 文件过于庞大,在带宽受限的网络环境下,部署速度太慢,这时就需要自定义可执行的 jar 文件,只把工程代码打包在 jar 文件中,将依赖文件都存放在其他目录,这样每次生成的 jar 文件体积就非常小,便于传输部署。

最简单的打包方式是使用 maven-jar-pluginmaven-dependency-plugin 插件,简单配置一下,即可实现。

pom.xml 文件配置如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<build>
   <plugins>
       <plugin>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-maven-plugin</artifactId>
       </plugin>
       <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-dependency-plugin</artifactId>
       </plugin>
       <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-jar-plugin</artifactId>
           <configuration>
               <!--自定义jar文件名称,可选-->
               <jarName>app</jarName>
               <archive>
                   <manifest>
                       <addClasspath>true</addClasspath>
                       <!--maven-dependency-plugin 默认生成的依赖文件夹名称-->
                       <classpathPrefix>dependency/</classpathPrefix>
                       <mainClass>cn.eastseven.Application</mainClass>
                   </manifest>
               </archive>
           </configuration>
       </plugin>
   </plugins>
</build>

执行命令:

1
mvn clean compile jar:jar dependency:copy-dependencies

target 目录下

1
2
3
4
5
6
7
target
    |__classes
    |__dependency
    |__generated-source
    |__maven-archiver
    |__maven-status
    |__app.jar

其中 app.jardependency 就是部署时需要的文件

执行命令:

1
java -jar target/app.jar

PS: 这种打包方式没有分离配置文件。

示例源码

3. 参考