简介
Spring Boot Maven Plugin插件提供spring boot在maven中的支持。允许你打包可运行的jar包或war包。
插件提供了几个maven目标和Spring Boot 应用一起工作。总的有:
- spring-boot:repackage 请阅读:Spring cloud的Maven插件(一):repackage目标
- spring-boot:run 请阅读: Spring cloud的Maven插件(二):run目标
- spring-boot:start and spring-boot:stop
- spring-boot:build-info
run: 这个目标和直接java -jar 来启动基本相同,唯一不同的是java -jar需要打包后才能跑,而run目标不需要。这个当程序编译打包需要比较长时间时,用run目标来跑可以节约时间。
一、简单使用
Spring Boot Maven Plugin 包括一个 run 目标,该目标被用于从命令行启动你的应用程序。比如:
1 mvn spring-boot:run
eclipse用法如下:
启动后的日志:
run目标的日志
二、实战
默认情况下,应用程序直接从Maven JVM执行。 如果您需要在分叉进程(maven进程fork出来的子进程)中运行,可以使用'fork'选项。 如果指定了'jvmArguments'或'agent'选项,或者如果存在devtools,应用程序也会在分叉进程执行。
如果需要指定一些JVM参数(即用于调试目的),可以使用jvmArguments参数,请看下面实例:
1 <project>
2 ...
3 <build>
4 ...
5 <plugins>
6 ...
7 <plugin>
8 <groupId>org.springframework.boot</groupId>
9 <artifactId>spring-boot-maven-plugin</artifactId>
10 <version>1.5.7.RELEASE</version>
11 <configuration>
12 <jvmArguments>
13 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
14 </jvmArguments>
15 </configuration>
16 ...
17 </plugin>
18 ...
19 </plugins>
20 ...
21 </build>
22 ...
23 </project>
请注意,由于您指定了一些JVM参数,所以该应用是自动在分叉进程中运行。这些参数也可以在命令行中指定,具体如下:
mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
当我们程序中设置了多个profile的yml文件,比如application.yml,application-dev.yml,application-test.yml,application-prd.yml。我们可以通过设置profiles参数来指定应用程序的active的profile。下面的例子演示指定要application.yml和application-test.yml两个文件。具体如下:
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.5.7.RELEASE</version>
<configuration>
<profiles>
<profile>test</profile>
</profiles>
</configuration>
...
</plugin>
...
</plugins>
...
</build>
...
</project>
如果要多加一个profile,只要多添加<profile>prd</profile>即可。
同样的,要启动的profiles也可以通过命令行来指定,需要使用多个profile时,用逗号隔开,具体如下:
1 mvn spring-boot:run -Drun.profiles=test,prd
喜欢请微信扫描下面二维码,关注我公众号--“精修Java”,做一些实战项目中的问题和解决方案分享。