SpringBoot项目打包

SpringBoot项目打包

SpringBoot项目打包在linux服务器中运行:
①jar类型项目会打成jar包:
jar类型项目使用SpringBoot打包插件打包时,会在打成的jar中内置一个tomcat的jar。所以我们可以使用jdk直接运行该jar项目可,jar项目中有一个功能,将功能代码放到其内置的tomcat中运行。我们直接使用浏览器访问即可。
②war类型项目会打成war包:
在打包时需要将内置的tomcat插件排除,配置servlet的依赖。将war正常的放到tomcat服务器中运行即可。

导入打包依赖
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
            </configuration>
        </plugin>
    </plugins>
</build>

方式1,当项目本身为war直接打包即可,当项目由jar打包成war需要修改如下

关于pom.xml修改
 <packaging>war</packaging>
 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!--排除web启动中自动依赖的tomcat插件-->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!--
    手动依赖tomcat插件,但是表明项目打包时该依赖不会被打进去,目的主要是保证开发阶段本地SpringBoot
    项目可以正常运行
-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <!-- <scope>provided</scope>打包的时候可以不用包进去,别的设施会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。
                相当于compile,但是打包阶段做了exclude操作-->
            <scope>provided</scope>
        </dependency>
启动文件继承configure
package com.msb;
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 SpringBootAllApplication extends SpringBootServletInitializer {
    /*当jar项目需要导出包,成为war项目,需要重现此方法*/
    @Override
    public SpringApplicationBuilder configure(SpringApplicationBuilder application){
           return application.sources(SpringBootAllApplication.class);
    }
    public static void main(String[] args) {
        SpringApplication.run(SpringBootAllApplication.class, args);
    }
}
如果发生报错:项目打包报错,此处添加设为false可以解决
<failOnMissingWebXml>false</failOnMissingWebXml>

将打包的war文件放在webapps中,(端口号为8080+解压文件名+项目默认新解压的tomcat),然后启动;

当使用jar进行打包时
关于pom.xml修改
 <packaging>jar</packaging>

posted @ 2022-06-29 16:46  爱豆技术部  阅读(1845)  评论(0编辑  收藏  举报
TOP