SpringBoot打包插件

博客介绍了Spring Boot项目打包的依赖配置方法,若为父子工程,在启动类所在子工程的pom.xml中加入相关依赖。若要打成war包,还需添加特定内容,可作为使用备忘。
    最近在对SpringBoot项目进行打包时,发现公司用的打包方式跟我们常用的打包方式不同,不是将项目打成一个jar包。于是,我自己想把项目改成打成一个jar包启动的方式,有点忘记需要的具体插件,就找到之前项目的pom找到对应的插件记录如下,以便下次忘了及时找到。。。。

在pom.xml中加入如下依赖即可。如果是父子工程的项目,在启动类(一般都是web)所在的子工程的pom.xml中加入即可:

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--如果没有该配置,devtools不会生效-->
                    <fork>true</fork>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
           
        </plugins>
        <finalName>${artifactId}</finalName>
    </build>

如果需要达成war包,再加上

 <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <configuration>
          <skip>true</skip>
      </configuration>
  </plugin>
  <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>3.0.0</version>
      <configuration>
          <failOnMissingWebXml>false</failOnMissingWebXml>
          <warName>${artifactId}</warName>
      </configuration>
  </plugin>

作为使用备忘。。。。。。。

### Spring Boot 3.5 打包插件配置方法 Spring Boot 提供了强大的打包功能,允许开发人员通过 Maven 或 Gradle 插件将应用程序打包为可执行的 JAR 或 WAR 文件。以下是针对 Spring Boot 3.5 的打包插件配置教程和示例。 #### Maven 配置示例 在 Maven 项目中,`spring-boot-maven-plugin` 是用于打包的核心插件。以下是一个典型的 `pom.xml` 配置示例: ```xml <build> <plugins> <!-- Spring Boot Maven 插件 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>3.5.0</version> <!-- 确保版本与 Spring Boot 版本一致 --> <executions> <execution> <goals> <goal>repackage</goal> <!-- 使用 repackage 目标进行打包 --> </goals> </execution> </executions> </plugin> </plugins> </build> ``` 此配置确保生成的 JAR 文件是可执行的,并且所有依赖项都包含在 `BOOT-INF/lib/` 目录下[^4]。 #### 打包为 WAR 文件 如果需要将 Spring Boot 应用程序部署到外部 Servlet 容器(如 Tomcat),可以将其打包为 WAR 文件。以下是相关配置: ```xml <packaging>war</packaging> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>3.5.0</version> </plugin> </plugins> </build> <!-- 确保主类继承 SpringBootServletInitializer --> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> <!-- 将 Tomcat 作为 provided 依赖 --> </dependency> </dependencies> ``` 主类需要继承 `SpringBootServletInitializer` 并重写 `configure` 方法[^2]: ```java package com.weijie; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class HelloWordApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(HelloWordApplication.class); } public static void main(String[] args) { SpringApplication.run(HelloWordApplication.class, args); } } ``` #### Gradle 配置示例 对于使用 Gradle 构建的项目,可以通过 `spring-boot-gradle-plugin` 实现类似功能。以下是一个 Gradle 配置示例: ```gradle plugins { id 'org.springframework.boot' version '3.5.0' // 确保版本匹配 id 'io.spring.dependency-management' version '1.1.0' id 'java' } group = 'com.weijie' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' // 如果需要打包为 WAR testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() } bootJar { mainClass = 'com.weijie.HelloWordApplication' // 指定主类 } ``` 此配置会生成一个可执行的 JAR 文件,其中包含所有必要的依赖项[^3]。 #### MANIFEST.MF 文件内容 打包完成后,JAR 文件中的 `META-INF/MANIFEST.MF` 文件会包含以下关键信息: ``` Manifest-Version: 1.0 Implementation-Title: your-application-name Implementation-Version: 0.0.1-SNAPSHOT Built-By: your-username Main-Class: org.springframework.boot.loader.JarLauncher Start-Class: com.weijie.HelloWordApplication Spring-Boot-Classes: BOOT-INF/classes/ Spring-Boot-Lib: BOOT-INF/lib/ Created-By: Apache Maven 3.x.x Build-Jdk: 17 ``` 这些元数据确保了 JAR 文件的正确运行时行为[^3]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值