问题描述
如下图,一个MVC架构的web maven项目,out输出目录的classes没有被编译的java文件,导致Controller层的内容一直无法被访问(找了好久还以为是我代码写错了,哎!)。
原因
我推测是我创建web项目时使用的"项目-右键-添加框架支持",导致添加的web框架和src是同级目录,所以tomcat加载的时候没有编译src中的java类,因为我用另一种方式创建web项目运行成功编译了java类,但是我之前创建项目也是直接添加框架支持运行成功了,现在不知道怎么回事现在又不行了,编译器设置啥的网上找的方法都试了也不行。(改编译输出路径,清理maven仓库的jar重新加载,配置tomcat啥的都不好使)
解决方案
急用推荐方法一,以后开发推荐方法二感觉标准一点
方法一
https://blog.csdn.net/u012596797/article/details/114993124
找到项目目录,将.idea文件夹删除
重新打开idea加载项目 - 信任项目
删除web支持文件夹(记得备份)
重新添加web框架支持
将之前备份的web资源导入
重新配置tomcat,并重新将引用的jar添加到lib目录
最后启动tomcat,程序终于可以正常编译java类在out/classes中输出了
不过这样搞完out目录就不像之前到黄色了(所以推荐下面的方法感觉标准一点),但是可以正常运行就行!
方法二(推荐)- IDEA环境下创建Maven WebApp
新建一个标准的maven工程
文件 - 项目结构 - Facet - 添加web模块
设置web模块的信息:
web模块部署描述符,改为项目名/src/main/webapp/+web描述符文件;使用Spring最低servlet版本是3.1,所以选择3.1以上的版本。
设置存储页面的目录(web资源目录) src/main/webapp
最下方点击创建工件,会自动创建,右上角展开(Exploded)型是以目录的方式运行,而存档(Archive)类型会打成war包运行。
以上就完成了web模块的创建,配置tomcat,导入引用的jar运行就可以了。