当前位置: 首页 > article >正文

springboot war包部署 和jar包部署

文章目录

  • war包部署
    • 设置打包方式为war
    • 排除内嵌的tomcat
    • 在插件中指定入口类
    • 打包测试
  • jar包部署
    • 设置打包方式
    • 执行打包
    • 测试访问
      • 修改插件版本
      • 指定jsp打包配置
    • 重新打包测试

war包部署

设置打包方式为war

执行项目打包的方式为 "war"  默认创建springboot项目打包都是jar
		  修改项目pom.xml:
		  <packaging>war<packaging>

排除内嵌的tomcat

在依赖中加入provided,打包不参与

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-tomcat</artifactId>
  <scope>provided</scope>   <!--去掉内嵌tomcat-->
</dependency>

<dependency>
  <groupId>org.apache.tomcat.embed</groupId>
  <artifactId>tomcat-embed-jasper</artifactId>
  <scope>provided</scope>  <!--去掉使用内嵌tomcat解析jsp-->
</dependency>

在插件中指定入口类

  <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!--配置springboot入口类-->
                <configuration>
                    <fork>true</fork>
                    <!--增加jvm参数-->
                    <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>
                    <!--指定入口类-->
                    <mainClass>com.demo.SpringbootTest5Application</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>

还要修改入口类

//SpringBootServletInitializer 不再使用内嵌的容器启动,使用外部的tomcat容器启动
@SpringBootApplication
public class SpringbootTest5Application extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootTest5Application.class, args);
    }
    //配置入口类是谁
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(SpringbootTest5Application.class);
    }
}

打包测试

部署到本地的tomcat。进行测试
在这里插入图片描述
测试结果
在这里插入图片描述


jar包部署

设置打包方式

	**<packaging>jar</packaging>**

执行打包

在这里插入图片描述

测试访问

java -jar 对应jar文件名字  nohup &

在这里插入图片描述

然后测试访问
在这里插入图片描述

发现出现了404,其实是springboot对jsp模版支持不友好,使用jsp模版部署,jar部署无法找到jsp页面。如何解决呢?请看以下解决方案:

修改插件版本

<plugins>
  <!--版本必须为1.4.2版本-->
  <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>1.4.2.RELEASE</version>
  </plugin>
</plugins>

指定jsp打包配置

<resources>
  <!-- 打包时将jsp文件拷贝到META-INF目录下-->
  <resource>
    <!-- 指定resources插件处理哪个目录下的资源文件 -->
    <directory>src/main/webapp</directory>
    <!--指定必须要放在此目录下才能被访问到-->
    <targetPath>META-INF/resources</targetPath>
    <includes>
      <include>**/**</include>
    </includes>
  </resource>
  <resource>
    <directory>src/main/resources</directory>
    <includes>
      <include>**/**</include>
    </includes>
    <filtering>false</filtering>
  </resource>
</resources>

重新打包测试

在这里插入图片描述
**在这里插入图片描述**


http://www.kler.cn/a/229885.html

相关文章:

  • 在 Linux 系统中根据pid查找软件位置
  • 养老院、学校用 安科瑞AAFD-40Z单相电能监测故障电弧探测器
  • PAT甲级 1056 Mice and Rice(25)
  • 富文本编辑器图片上传并回显
  • NAT:连接私有与公共网络的关键技术(4/10)
  • 非线性控制器设计原理
  • Linux中共享内存(mmap函数的使用)
  • 【技术预研】StarRocks官方文档浅析(4)
  • Linux命令:traceroute命令
  • re:从0开始的CSS学习之路 3. CSS三大特性
  • 计算机网络自顶向下Wireshark labs-HTTP
  • AD高速板常见问题和过流自锁
  • c语言游戏实战(3):三子棋
  • 私有化部署一个吃豆人小游戏
  • 深度学习的进展:人工智能时代的里程碑
  • 算法训练营day23(补),回溯3
  • C#在既有数组中插入另一个数组:Array.Copy方法 vs 自定义插入方法
  • 点云transformer算法: FlatFormer 论文阅读笔记
  • 【软考设计师笔记】一篇文章带你了解数据库
  • 单片机和 ARM 的区别
  • 汽车零部件MES系统实施方案
  • 2024.2.5 vscode连不上虚拟机,始终waiting for server log
  • Django模板(一)
  • 查询sql表的时候数据量超出10000的解决办法
  • PyTorch 2.2 中文官方教程(十二)
  • vue3项目中使用mapv