maven插件:spring-boot-maven-plugin学习

689 阅读1分钟

插件引入

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

maven goal

  1. build-info:生成项目的构建信息文件 build-info.properties
  2. help:用于展示spring-boot-maven-plugin的帮助信息。使用命令行mvn spring-boot:help -Ddetail=true -Dgoal=可展示goal的参数描述信息。
  3. repackage:可生成可执行的jar包或war包。插件的核心goal。
  4. run:运行 Spring Boot 应用
  5. start:在集成测试阶段,控制生命周期
  6. 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。

原文链接:blog.csdn.net/u010406047/…