IDEA Web项目out/classes目录没有编译的class类文件 - IDEA环境下创建Maven WebApp

问题描述

如下图,一个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运行就可以了。

<think>好的,用户想了解如何部署IdeaWeb项目,需要提供教程或指南。首先,我得回忆一下IntelliJ IDEA中部署Java Web项目的步骤。根据引用中的资料,特别是引用[4]提到了使用Idea创建并部署到Tomcat,这应该是关键。 用户可能需要从创建项目开始,所以第一步应该是创建Maven Web项目。但根据引用[1],使用默认的原型可能会生成Servlet 2.5版本,导致注解失效,需要确认版本是否为3.0以上。因此,在创建项目时需要选择合适的Archetype,或者手动调整web.xml的配置。 接下来是配置Tomcat服务器。在IDEA中添加本地安装的Tomcat实例,这一步需要引导用户进入运行配置,选择本地Tomcat路径。然后设置部署工件,比如war包或爆炸式部署,这里可能需要解释两种方式的区别,比如爆炸式便于开发时热更新。 然后是项目结构配置,确保输出目录和依赖正确。引用[5]提到项目编译输出目录,可能需要指导用户检查模块的编译路径,确保编译后的class文件正确输出,依赖的库是否添加到WEB-INF/lib下,避免运行时找不到类。 最后是部署和访问,启动Tomcat后访问指定端口。同时,可能需要注意上下文路径的设置,确保访问的URL正确。此外,可能还需要处理常见问题,比如注解失效的问题,如引用[1]中的解决方案,升级web.xml版本或修改项目配置。 用户可能遇到的潜在问题包括依赖未正确导入、Servlet版本过低、Tomcat配置错误等。需要提前考虑这些情况,并在教程中给出解决方法,例如检查pom.xml的依赖,确认web.xml的版本,或者重新配置部署描述符。 现在需要将步骤结构化,分点说明,确保逻辑清晰,每一步都对应实际操作。同时,引用相关的参考资料,如引用[1]、[4]、[5]来支持步骤的正确性。最后,生成相关问题,帮助用户进一步理解可能遇到的扩展问题,比如性能优化、多环境配置等。</think>### IdeaWeb 项目部署指南 #### 一、项目创建与配置 1. **创建Maven Web项目** - 在IntelliJ IDEA中选择`File -> New -> Project`,使用`maven-archetype-webapp`原型创建项目[^1]。 - 注意:默认生成的Servlet版本可能为2.5(需手动升级到3.0+),可通过修改`pom.xml`添加依赖: ```xml <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> ``` 2. **配置项目结构** - 检查`Project Settings -> Modules`,确保`Web`模块的`Web Resource Directory`指向`src/main/webapp`[^5]。 - 设置编译输出路径:`Paths -> Use module compile output path`指向`target/classes`。 #### 二、Tomcat服务器配置 1. **添加本地Tomcat实例** - 选择`Run -> Edit Configurations`,点击`+`添加`Tomcat Server -> Local`。 - 指定Tomcat安装目录(如`/usr/local/apache-tomcat-9.0.xx`)。 2. **部署工件(Artifact)** - 在`Deployment`选项卡中点击`+`,选择`Artifact -> war exploded`(推荐开发阶段使用,支持热更新)。 - 设置上下文路径(如`/myweb`),访问时通过`http://localhost:8080/myweb`访问[^4]。 #### 三、依赖与部署验证 1. **依赖管理** - 确保所有依赖库(如JDBC驱动)已添加到`pom.xml`,并执行`mvn clean install`生成`WEB-INF/lib`目录。 2. **启动与测试** - 点击运行按钮启动Tomcat,控制台输出`Tomcat started on port(s): 8080`表示成功。 - 访问`http://localhost:8080/{上下文路径}/index.jsp`验证页面渲染。 #### 四、常见问题解决 1. **注解失效** 若使用`@WebServlet`无效,需检查`web.xml`是否为3.0+版本,或直接删除`web.xml`改用全注解配置。 2. **404错误** - 确认`webapp`目录下存在`index.jsp`或对应的Servlet映射。 - 检查`Artifact`是否成功部署到Tomcat的`webapps`目录。 ```xml <!-- 示例:web.xml 3.0配置 --> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> </web-app> ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摘星喵Pro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值