Spring Boot Maven插件
Spring Boot提供了一个Maven插件,在指定了spring-boot-starter-parent
为项目的parent后,在项目中可以进行如下定义来配置Spring Boot的Maven插件。该plugin主要提供了两个goal,run和repackage,run用来运行当前Spring Boot工程,repackage则用来将项目重新打包。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
run
需要通过Maven插件启动spring boot项目时,可以运行如下命令。
mvn spring-boot:run
在运行的过程中也可以加入一些控制参数,比如下面的代码就通过jvmArguments参数指定了运行JVM的堆内存的最大值是512M。关于更多可以配置的参数可以参考https://docs.spring.io/spring-boot/docs/2.0.3.RELEASE/maven-plugin/run-mojo.html。
mvn spring-boot:run -Dspring-boot.run.jvmArguments=-Xmx512m
repackage
需要使用repackage进行重新打包时需要在定义plugin时进行如下定义。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
然后只需要运行正常的mvn package
打包指令就可以触发插件的repackage指令进行重新打包。Spring Boot插件的repackage指令会将项目中相关的jar包都打到一个jar包里面,即jar包里面又包含jar包。打包后的jar包的主运行程序类将是Spring Boot提供的org.springframework.boot.loader.JarLauncher
。然后可以使用java -jar your_java_file.jar
运行打包好的jar包了。比如打包好的jar包的名称是app.jar
,则可以使用下面的指令运行该jar包。
java -jar app.jar
假设在打包的时候有一个jar包是不需要包含的,可以通过execlude指定需要排除的包,如下则指定了需要排除org.projectlombok::lombok
包。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
如果是需要排除某一个groupId对应的所有的jar包,则可以使用excludeGroupIds进行指定。如下代码则指定了打包时将排除所有的groupId为org.springframework
的包。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<excludeGroupIds>org.springframework</excludeGroupIds>
</configuration>
</plugin>
关于repackage指令可以指定的完整参数,请参考https://docs.spring.io/spring-boot/docs/2.0.3.RELEASE/maven-plugin/repackage-mojo.html。
参考文档
https://docs.spring.io/spring-boot/docs/2.0.3.RELEASE/maven-plugin/index.html
(注:本文是基于Spring Boot 2.0.3所写)