【前情提要】最近作了一個項目,項目是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