SpringBoot+Maven打包jsp和前端静态文件

直接使用maven打包,生成的jar包后,直接运行,访问会出现404。无法访问,这是因为maven插件没有把jsp页面编译到jar包中(因为springboot不支持jsp了,所以不会编译jsp页面)。

问题呈现如下:

访问主页结果如下:

打开我们的jar包,会发现jsp文件未被添加到jar包中

 再看看前端静态文件是否存在?可以发现前端静态文件还是存在的。

接着我们测试一下项目接口是否正常运行?我测试了一下发现项目也能正常运行。 

因此得出结论,就是maven在编译项目为jar包时,没有编译jsp文件,导致项目没有前端页面,出现404的状况,那么我们要做的事情就是让maven去编译jsp页面,并且让它把jsp打到jar包中。

因此我们需要修改maven的版本,一般我们的版本如下:

<plugins>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
            <excludes>
                <exclude>
                    <groupId>org.projectlombok</groupId>
                    <artifactId>lombok</artifactId>
                </exclude>
            </excludes>
        </configuration>
    </plugin>
</plugins>

那么现在我们把它修改一下,变成固定的版本:

<plugins>
	<plugin>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-maven-plugin</artifactId>
		<version>1.4.2.RELEASE</version>
		<configuration>
			<!-- 设置启动类 -->
			<mainClass>com.xx.xx.XXXXXXApplication</mainClass>
		</configuration>
		<executions>
			<execution>
				<goals>
					<goal>repackage</goal>
				</goals>
			</execution>
		</executions>
	</plugin>
</plugins>

修改了maven版本还是不行,还需要让maven编译时能把资源添加到jar包中,因此还需要添加如下配置:

<resources>
    <!-- 前端静态资源 -->
    <resource>
        <directory>src/main/resources</directory>
        <includes>
            <include>**/**</include>
        </includes>
        <filtering>false</filtering>
    </resource>
    <!-- jsp页面 -->
    <resource>
        <directory>src/main/webapp</directory>
        <!--这里必须是META-INF/resources-->
        <targetPath>META-INF/resources</targetPath>
        <includes>
            <include>**/**</include>
        </includes>
        <filtering>false</filtering>
    </resource>
</resources>

还需要把jsp的依赖添加到maven中,如下:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
</dependency>

在idea找到maven的这个打包按钮,就可以打包了

 打完jar包后我们查看一下,jar中是否有jsp文件,是否有静态文件?

jsp页面

 前端静态文件

最后访问一下项目主页

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值