DEBUG了好几天,在本地能正常run的项目放上服务器行不通才发现的问题,检查了一下maven打包出来的文件,才发现原来我的maven配置一直是错的!
1.jsp文件丢失
首先由于IDEA的目录跟eclipse目录不同,而Maven的默认Web内容目录在/src/main/webapp下,如果不去修改的话他就默认到那里去找你的网页文件,所以打包的时候是没有的
解决方法:
去pom.xml告诉Maven你的web文件放在了哪里:
<build>
<finalName>projectName</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<!--指定web.xml文件的位置-->
<webXml>WebContent\WEB-INF\web.xml</webXml>
<!--指定jsp等文件所在位置-->
<warSourceDirectory>WebContent</warSourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
2.加入第三方lib
因为Maven默认的是把pom文件里依赖的包自动打入WEB-INF/lib里的,第三方的jar的话就需要另外当资源放进去,在刚刚上面的configuration中补充:
<webResources>
<resource>
<!--配置本地jar包在项目中的存放路径-->
<directory>/lib</directory>
<!--配置打包时jar包的存放路径-->
<targetPath>WEB-INF/lib</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
那么maven就能识别到这些文件从而很好的把他们打入war和target里了!
(参考了广大网友的方法:JSP文件丢失,第三方lib,万分感谢)
在将本地运行正常的SSM项目部署到服务器时遇到问题,发现Maven打包配置错误导致jsp文件丢失。解决方案是在pom.xml中指定Web内容目录。对于第三方lib,需要额外配置使其被Maven识别并打入war包。参考网友方法成功解决问题。
1103

被折叠的 条评论
为什么被折叠?



