SpringBoot打成war包

首先 啟動(dòng)類(lèi) 需要繼承 SpringBootServletInitializer類(lèi),并且需要重寫(xiě) configure 方法,例如:

@SpringBootApplication
public class FirstSpringbootApplication extends SpringBootServletInitializer {
    public static void main(String[] args) {
        SpringApplication.run(FirstSpringbootApplication.class, args);
    }
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(FirstSpringbootApplication.class);
    }
}

其次將maven配置文件pom.xml中的 packaging 修改為 war,并且添加springboot打包插件

    ...
    <groupId>com.demo</groupId>
    <artifactId>first-app</artifactId>
    <version>0.0.1</version>
    <name>first-app</name>
    <packaging>war</packaging>
    <description>demo</description>
    ...
  <build>
        <finalName>first-app</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!-- 表示引入依賴scope為system的jar,但是只有這項(xiàng)的話,打war包后,
                      jar會(huì)被放在WEB-INF/lib-provided 必須加入下面的maven-war-plugins插件,才會(huì)將jar放入WEB-INF/lib  -->
                    <includeSystemScope>true</includeSystemScope>
                </configuration>
            </plugin>
            <!--  下面的插件主要是為了在打包時(shí)引入項(xiàng)目?jī)?nèi)部已有的jar,
              并且打包后會(huì)輸出到 targetPath 指定的地址下,targetPath是項(xiàng)目根路徑的相對(duì)地址,
              ${project.basedir}表示的是項(xiàng)目根路徑,如果你的jar放在src/main/resources下,
              應(yīng)該改為 ${project.basedir}/src/main/resources/xxxxx -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.2</version>
                <configuration>
                    <webResources>
                        <resource>
                            <directory>${project.basedir}/lib</directory>
                            <targetPath>WEB-INF/lib</targetPath>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>
        </plugins>
    </build>

使用mvn clean package -Dmaven.test.skip=true打包即可

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容