Springboot打成war包部署到Tomcat

本文详细介绍如何在Spring Boot项目中配置并打包WAR文件,包括修改包名、指定WAR打包方式、依赖外部Tomcat、启动类配置、解决高版本Spring Boot在Tomcat7上的兼容性问题、IDEA打包流程及部署步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.在pom.xml中修改打成的包名称

 <build>
        <finalName>你的包名称</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
 </build>

2.在pom.xml中指定要打成war包

<groupId>com.test</groupId>
    <artifactId>simuOrder</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!-- 打成war包 -->
    <packaging>war</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.8.RELEASE</version>
    </parent>

3.打成war包需要依赖外部Tomcat

<!-- 打成war包需要依赖外部Tomcat -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </dependency>

4.启动类需要继承SpringBootServletInitializer类 并且重写 configure方法

@SpringBootApplication
public class MainClassStart extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(MainClassStart.class, args);
    }


    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(MainClassStart.class);
    }
}

5.Tomcat7启动高版本的springboot打的war包会报错 defaultValidator创建失败 加入以下依赖可以解决该问题

<!-- 高版本的springboot打的war包需要Tomcat8启动 不然会报错 加入以下依赖消除报错 -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.2.2.Final</version>
        </dependency>

6.通过idea左侧maven projects窗口打包

7.打好的war包在工程的target目录下

8.将打好的war包复制到你的Tomcat的webapps目录下

9.在Tomcat的bin目录下,找到 startup.bat(Windows) 、startup.sh (Linux)启动Tomcat 

 

打包部署完毕!!

 

2020-01-07       ——于南京

                                               

当我们将Spring Boot项目打成war部署Tomcat时,可能会遇到jar冲突的问题。下面是一般的解决方法: 1. 排查冲突的jar:可以使用命令`mvn dependency:tree`来查看项目依赖的所有jar,找到冲突的jar。 2. 排除冲突的jar:在pom.xml文件中,可以使用`<exclusions>`标签来排除冲突的jar。例如: ```xml <dependency> <groupId>com.example</groupId> <artifactId>example</artifactId> <version>1.0</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </exclusion> </exclusions> </dependency> ``` 3. 使用不同的版本:在pom.xml文件中,可以指定不同的版本来避免冲突。例如: ```xml <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.2.3.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.3.7.RELEASE</version> </dependency> ``` 4. 使用maven-shade-plugin插件:可以使用maven-shade-plugin插件来将所有的依赖打进一个可执行的jar中,避免冲突。例如: ```xml <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.2.4</version> <configuration> <createDependencyReducedPom>false</createDependencyReducedPom> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>com.example.Application</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build> ``` 这些方法中,最好的解决方法是使用maven-shade-plugin插件,因为它可以将所有的依赖打进一个可执行的jar中,避免冲突。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值