2018-07-12 springboot maven 打包jsp进入jar

spring boot 通过maven打包jsp到jar包中运行
使用过spring boot 的人应该都知道,官方其实并不太推荐使用jsp作为页面,而是推荐使用模板(freemarker、velocity等)作为页面展示。

但是作为开发来说,很多时候大家还是习惯使用JSP作为页面(毕竟JSP在java开发中已经风靡多年),所以如果你在使用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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容