插件引入
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
maven goal
- build-info:生成项目的构建信息文件 build-info.properties
- help:用于展示spring-boot-maven-plugin的帮助信息。使用命令行mvn spring-boot:help -Ddetail=true -Dgoal=可展示goal的参数描述信息。
- repackage:可生成可执行的jar包或war包。插件的核心goal。
- run:运行 Spring Boot 应用
- start:在集成测试阶段,控制生命周期
- stop:在集成测试阶段,控制生命周期
打包:repackage
这个gola绑定在maven的package的生命周期上,当执行mvn package后,再次重新打包生成可执行的 jar包或war包。
mvn package spring-boot:repackage
注意点
repackage生成的包与mvn package生成的包同名,package生成的包被重命名为.original。*
repackage 命令生成的包,默认会包含项目引入的所有依赖,包括scope为provied的依赖(scope为provied的依赖,只在编译有效,不参与打包)
- 通过指定groupId和artifactId排除某个特定的依赖
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
- 指定groupId排除groupId相关的所有依赖
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludeGroupIds>org.projectlombok</excludeGroupIds>
</configuration>
</plugin>
</plugins>
</build>
- 若项目引入了spring-boot-devtools,默认spring-boot-devtools 会被打在包里,若想排除,应设置 repackage 的 excludeDevtools参数为true。在打war包时,还应将spring-boot-devtools 的optinal设置为true或将scope设置为provided。