spring boot 通過maven打包jsp到jar包中運行
使用過spring boot 的人應該都知道,官方其實并不太推薦使用jsp作為頁面,而是推薦使用模板(freemarker、velocity等)作為頁面展示。
但是作為開發(fā)來說,很多時候大家還是習慣使用JSP作為頁面(畢竟JSP在java開發(fā)中已經風靡多年),所以如果你在使用springboot時想使用JSP作為web頁面,并且需要打包成jar運行,那么你可能就需要額外的去配置打包路徑了。因為jsp默認是在webapp目錄下,可是打包成jar是沒有webapp這個目錄結構的。先看一下web項目的目錄結構:
2
下面通過spring boot 提供的spring-boot-maven-plugin插件將項目打包成jar包,通過resources去配置jsp的打包路徑即可。打包成功后,項目JSP頁面都會copy到META-INF目錄,這時就OK了。
POM.XML
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.security</groupId>
<artifactId>security</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<artifactId>security-cas</artifactId>
<packaging>jar</packaging>
<dependencies>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
<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>
</build>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
jar目錄結構:
打包完成后就可以通過java -jar package命令運行應用了。
java -jar package.jar
java -jar package.war