IDEA项目调试运行报:Configuration Error: deployment source ‘ssmProject:war exploded’ is not valid解决方法收录
1.问题出现
Configuration Error: deployment source ‘ssmProject:war exploded’ is not valid
在IntelliJ IDEA中部署Web项目时,war
和war exploded
是两种不同的部署工件(Artifact)类型,它们主要区别在于项目的打包和部署方式:
- war:
- 这种模式会将Web项目打包成一个
.war
文件,然后将这个文件部署到应用服务器(如Tomcat)上。这种方式适用于生产环境部署,因为打包后的文件更易于管理和传输。 .war
文件是一种归档格式,包含了Web应用的所有资源,包括HTML、JSP页面、Java类文件、库文件等。服务器会在运行时自动解压这个文件。
- 这种模式会将Web项目打包成一个
- war exploded:
war exploded
模式不生成单一的.war
文件,而是将Web项目的结构和内容直接展开到服务器的指定部署目录下。这意味着所有文件和目录都保持原样,没有被压缩。- 这种模式适合开发阶段,因为它允许你快速地查看和修改项目中的静态资源,而无需每次修改后重新打包部署。它也便于调试,因为源代码和部署的内容是同步的。
2. 问题排查
Artifact是maven中的一个概念,表示某个module要如何进行打包。一个web项目中有多个模块,可以粗略的理解为module是个web项目即可。
例如:war、war exploded、jar、ear等这些打包形式;一个module有了 Artifacts 就可以部署到应用服务器中。
拓展收录:Artifact中war和war exploded的区别以及war exploded形式tomcat启动失败的解决方法收录如下
选定的artifacts将在服务器启动时部署
① war 模式:这种可以称之为是发布模式,先打成war包,再发布;
② war exploded模式:exploded直译:分解的。从文件结构可以看出和它本身的翻译意思一样,就是分解的,也就是war、jar等产出物没压缩前的目录结构,是直接把文件夹、jsp页面 、classes等等移植到 Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在实际开发的时也是以这种方式在线部署。
war exploded 热部署
热部署方式介绍:
起初使用idea,发现工程每次修改JS或者是JSP页面后,并没有生效,每次修改都需要重启一次Tomcat才能体现刚刚所作的修改,这种方式比较浪费时间,那么通过war exploded模式可以实现热部署,即每次修改代码后,不用重新启动tomcat即可实时显示自己代码修改后的效果。
热部署方式相关设置
tomcat配置:
① on ‘update’ action:当用户主动执行更新的时候更新
② on frame deactication: 在编辑窗口失去焦点的时候更新
③ 可以根据自己的实际需求进行设置,一般通用的两个设置,都设置成 Update classes and resources
注意:
在 war exploded 模式时,工程中才有 Update classes and resources 这个选项,如果是war模式的话,是没有这个选项的。
收录:
war exploded模式下,tomcat启动项目失败的解决方法:
出现这种情况大多是只设置了模式是war exploded,上一步中的tomcat配置没修改成 Update classes and resources ,设置成 Update classes and resources即可解决问题。
3. 问题解决
了解更多知识请戳下: