【前情提要】最近作了一个项目,项目是springboot+jsp结构的,可是在发布生产环境的时候又须要用maven打成jar包,可是一开始的默认配置都不成功。下面的文章就是具体的解决过程。java
使用的JDK为1.8,springboot版本为:web
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>复制代码
打成的jar只包含class文件,没有见资源文件引入。spring
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/**</include>
</includes>
<!-- 开启过滤,用指定的参数替换directory下的文件中的参数 -->
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/webapp</directory>
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/**</include>
</includes>
</resource>
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>
**/*.java
</exclude>
</excludes>
</resource>
</resources>复制代码
只有使用这个版本打jar包才能解析jspspringboot
<plugins>
<plugin>
<!-- maven插件 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.2.RELEASE</version>
<configuration>
<mainClass>com.gt.LaysshApplication</mainClass>
</configuration>
</plugin>
</plugins>复制代码
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp复制代码
下面给出一个比较完整的maven编译配置mvc
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/**</include>
</includes>
<!-- 开启过滤,用指定的参数替换directory下的文件中的参数 -->
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/webapp</directory>
<targetPath>META-INF/resources</targetPath>
<includes>
<include>**/**</include>
</includes>
</resource>
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>
**/*.java
</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<!-- maven插件 -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.4.2.RELEASE</version>
<configuration>
<mainClass>com.gt.MyApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>复制代码
下面就是修改编译配置以后的结果app
【写在后面的话】现代的模板解析引擎已经有了这么多了,为何不试一下thymeleaf,可是在最近的项目中碰到了th:src标签不解析的问题,目前还不清楚具体缘由,并且相同的写法在其余页面都生效,真是怪异啊。鉴于目前仍是又不少人使用springboot+jsp来进行开发,可是由于使用IDEA工具建立的SpringBoot项目自己是没有webapp目录的。若是咱们想要添加webapp目录的话,能够手动添加。下面就简单的来讲一下配置过程。ssh
下图是修改配置前的默认配置下面将webapp配置到传统的main目录下
webapp