【**前情提要**】最近做了一个项目,项目是springboot+jsp结构的,但是在发布生产环境的时候又需要用maven打成jar包,但是一开始的默认配置都不成功。下面的文章就是具体的解决过程。

-----
# 壹、项目结构

![项目结构](https://img2018.cnblogs.com/blog/1035487/201908/1035487-20190810230714604-930434183.png)

# 贰、异常现象
使用的JDK为1.8,springboot版本为:
```xml

org.springframework.boot
spring-boot-starter-parent
1.5.6.RELEASE

UTF-8
UTF-8
1.8

```
打成的jar只包含class文件,没有见资源文件引入。
![没有包含resourse的编译结果](https://img2018.cnblogs.com/blog/1035487/201908/1035487-20190810230714757-503965857.png)
# 叁、解决办法
## 1. 添加资源路径的映射
```xml

src/main/resources

**/**


false

src/main/webapp
META-INF/resources

**/**

src/main/java

**/*.java

```
## 2. 修改maven编译版本为1.4.2

只有使用这个版本打jar包才能解析jsp

## 3. 设置mainClass
```xml


org.springframework.boot
spring-boot-maven-plugin
1.4.2.RELEASE

com.gt.LaysshApplication

```
## 4. 添加视图配置(可选)

```xml
spring.mvc.view.prefix=/WEB-INF/jsp/

spring.mvc.view.suffix=.jsp
```
下面给出一个比较完整的maven编译配置
```xml

src/main/resources

**/**


false

src/main/webapp
META-INF/resources

**/**

src/main/java

**/*.java


org.springframework.boot
spring-boot-maven-plugin
1.4.2.RELEASE

com.gt.MyApplication

```

下面就是修改编译配置之后的结果

![正确的结果](https://img2018.cnblogs.com/blog/1035487/201908/1035487-20190810230714889-604229825.png)

----

【写在后面的话】现代的模板解析引擎已经有了这么多了,为什么不试一下**thymeleaf**,但是在最近的项目中碰到了th:src标签不解析的问题,目前还不清楚具体原因,而且相同的写法在其他页面都生效,真是怪异啊。鉴于目前还是又很多人使用springboot+jsp来进行开发,但是因为使用IDEA工具创建的SpringBoot项目本身是没有webapp目录的。如果我们想要添加webapp目录的话,可以手动添加。下面就简单的来说一下配置过程。

-----

## 1.点开项目结构管理,点击IDEA右上角的Project Structure

![Project Structure](https://img2018.cnblogs.com/blog/1035487/201908/1035487-20190810230715126-57042101.png)

## 2.先点击下图中的+号,再点击Web

![2019071904](https://img2018.cnblogs.com/blog/1035487/201908/1035487-20190810230715322-546557570.png)

## 3.修改配置
下图是修改配置前的默认配置
![修改前的配置](https://img2018.cnblogs.com/blog/1035487/201908/1035487-20190810230715473-2026384157.png)
下面将webapp配置到传统的main目录下
![修改后的配置](https://img2018.cnblogs.com/blog/1035487/201908/1035487-20190810230715645-786146525.png)
![配置Artifacts](https://img2018.cnblogs.com/blog/1035487/201908/1035487-20190810230716362-1290966957.png)
![最后的配置成功的结果](https://img2018.cnblogs.com/blog/1035487/201908/1035487-20190810230730589-815402908.png)

springboot-jsp打jar问题的更多相关文章

  1. SpringBoot项目打成jar包后上传文件到服务器 目录与jar包同级问题

    看标题好像很简单的样子,但是针对使用jar包发布SpringBoot项目就不一样了.当你使用tomcat发布项目的时候,上传文件存放会变得非常简单,因为你可以随意操作项目路径下的资源.但是当你使用Sp ...

  2. springboot打成的jar包如何在Linux上持久运行

    一.首先说说在没有springboot的时候,项目是如何部署的? 1.动态web项目 动态web项目部署很方便,基本上上传文件到服务器的tomcat里面的webapps文件夹下即可完成部署.当然了,这 ...

  3. SpringBoot Cmd运行Jar文件指定active文件的命令如下

    SpringBoot Cmd运行Jar文件指定active文件的命令如下 SpringBoot 命令行指定配置文件运行 ================================ ©Copyri ...

  4. springboot打包成jar包后找不到xml,找不到主类的解决方法

    springboot打包成jar包后找不到xml,找不到主类的解决方法 请首先保证你的项目能正常运行(即不打包的时候运行无误),我们在打包时经常遇到如下问题: springboot打包成jar包后找不 ...

  5. 关于springboot项目的jar和war两种打包方式部署的区别

    关于springboot项目的jar和war两种打包方式部署的区别 关于springboot项目的jar和war两种打包方式部署的区别? https://bbs.csdn.net/topics/392 ...

  6. 【转载】JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案

    JAVA SpringBoot 项目打成jar包供第三方引用自动配置(Spring发现)解决方案 本文为转载,原文地址为:https://www.cnblogs.com/adversary/p/103 ...

  7. springboot打包的jar项目,不需要安装jdk环境启动

    因为服务器上是JDK7,而springboot至少用JDK8才行,但是又因为是很老的项目,不是很清楚能不能换JDK8,有风险,因此选择以前项目用JDK7,而新的springboot用JDK8.步骤一: ...

  8. 将一个SpringBoot工程打成jar包并在控制台执行起来

    JDK:1.8.0_212 IDE:STS4(Spring Tool Suit4 Version: 4.3.2.RELEASE) 工程下载:https://files.cnblogs.com/file ...

  9. idea将springboot打包成jar或者war

    1.首先在pom.xml中添加下面配置 <groupId>com.melo</groupId> <artifactId>focus</artifactId&g ...

  10. SpringBoot项目打成Jar包时运行

    使用java -jar ***.jar执行jar包的时候,会找jar包中的main()方法. 对于SpringBoot项目的Jar包,在META-INF目录下的MANIFEST.MF文件中,Main- ...

随机推荐

  1. C++屌屌的观察者模式-同步回调和异步回调

    目录 一.概述 1.同步观察者 2.异步观察者 二.效果展示 三.同步观察者 四.异步观察者 五.相关文章 原文链接:C++屌屌的观察者模式-同步回调和异步回调 一.概述 说起观察者模式,也是比较简单 ...

  2. 2019.6.5 NOIP2014 day2 t2 寻找道路

    我竟然一个人敲了NOIP提高组的t2? 题目描述 在有向图 G 中,每条边的长度均为 1,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 路径上的所有点的出边所指向的点都直 ...

  3. 每天学点node系列-zlib

    永不放弃,永不放弃又有两个原则,第一个原则是永不放弃,第二个原则就是:当你想放弃时回头看第一个原则. 概览 做过web性能优化的同学,对性能优化大杀器gzip应该不陌生.浏览器向服务器发起资源请求,比 ...

  4. websocket实现群聊和单聊(转)

    昨日内容回顾 1.Flask路由 1.endpoint="user" # 反向url地址 2.url_address = url_for("user") 3.m ...

  5. 02(a)多元无约束优化问题

    2.1 基本优化问题 $\operatorname{minimize}\text{    }f(x)\text{       for   }x\in {{R}^{n}}$ 解决无约束优化问题的一般步骤 ...

  6. 客户端持久化数据库---indexedDB使用

    _ 阅读目录 一:什么是indexedDB数据库? 二:IndexedDB数据库操作 2.1 打开或创建数据库 2.2 创建对象仓库(或叫创建表) 2.3 创建索引 2.4 新增数据 2.5 读取数据 ...

  7. 寻觅Azure上的Athena和BigQuery (二):神奇的PolyBase

    前情回顾 在“数据湖”概念与理论逐渐深入人心的今天,面向云存储的交互式查询这个需求场景显得愈发重要.这是因为原生的云存储(主要指S3这样的对象存储)既能够容纳大容量的明细数据,又能在性能和成本间取得一 ...

  8. springboot自动装配(2)---实现一个自定义自动装配组件

    对于springboot个人认为它就是整合了各种组件,然后提供对应的自动装配和启动器(starter),基于这个流程去实现一个定义的装配组件 还是这张图 一.创建自己的自动配置工程, spring.f ...

  9. Jenkins使用总结,2.0 新时代:从 CI 到 CD

    Jenkins近阶段使用的总结篇,只写了个引子,却一直未动手写完,今天补上. 前几篇文章提到在内网jenkins直接构建部署升级线上环境,job都是暴露在外面,很容易被误操作,需要做简单的权限控制,以 ...

  10. oracle分隔字符串列转行

    1. DEMO: SELECT REGEXP_SUBSTR('1,2', '[^,]+', 1, LEVEL)          FROM DUAL        CONNECT BY REGEXP_ ...