IDEA踩坑——Artifact不能同步classes

作者在搞新功能demo时,发现IDEA的war包部署的Artifact下classes未同步最新class,经查找发现是同步后被覆盖。原因是自动切换编译路径,在webapp下生成classes,覆盖了同步内容。处理方法为删除webapp下无效的classes,给编译目录设置排除标记。

今天搞新功能demo的时候突然发现IDEA的war包部署的Artifact下面classes没有同步最新的class过来,build, rebuild, 度娘均无果。便细细查找问题。

最后发现并不是没同步,是同步后被覆盖了

原因:没注意自动切换一次编译路径,结果在webapp下面生成了一个classes,而我的编译路径却不再此处

这样编译自动同步的内容就被webapp下的内容给覆盖了

处理方法:

1. 删除webapp下无效的classes

2. 将编译目录设置的和webapp下的classes打上排除标记(理论上编译路径设置成webapp/classes也可以,不过效果不好)

<think> 我们正在讨论使用Maven在IntelliJ IDEA中搭建Servlet项目的方法。用户明确要求使用Maven,因此我们需要手动配置Servlet相关的库。 步骤通常包括: 1. 创建Java Enterprise项目(如果没有选择Java Enterprise,可能需要手动添加Web支持) 2. 手动下载Servlet API的jar包并添加到项目中 3. 配置部署描述符(web.xml)或者使用注解配置Servlet 4. 配置应用服务器(如Tomcat)并部署项目 注意:在IntelliJ IDEA中,即使使用Maven,也可以通过创建Java Enterprise项目(选择Jakarta EE)来初始化一个Web项目,然后在项目设置中管理库。 由于用户要求使用Maven,我们将避免任何与Maven相关的操作,转而使用手动配置。 下面我将详细描述步骤。 </think> 在 IntelliJ IDEA使用 Maven 搭建 Servlet 项目的完整步骤如下: ### 一、基础环境准备 1. **安装 JDK**:确保已安装 JDK 8+(推荐 JDK 11) 2. **下载 Servlet API**:从 [Apache Tomcat 官网](https://tomcat.apache.org)下载最新版 Tomcat,解压后获取 `lib/servlet-api.jar` ### 二、项目创建流程 1. **新建项目** `File → New → Project → Java Enterprise` → 取消勾选 `Maven` ☑ 勾选 `Web Application` → 设置项目名称路径 → 点击 `Create` 2. **配置项目结构** `File → Project Structure` → 按顺序操作: - **模块依赖**: `Modules → Dependencies → + → JARs` → 添加下载的 `servlet-api.jar` - **Web 配置**: `Facets → Web → Deployment Descriptors` → 确认 `web.xml` 存在 `Web Resource Directories` → 确认 `web` 目录存在 3. **创建 Servlet 类** 右键 `src` → `New → Servlet` → 输入类名(如 `HelloServlet`)→ 自动生成代码框架: ```java public class HelloServlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.getWriter().println("<h1>Hello Servlet!</h1>"); } } ``` 4. **配置 web.xml** 在 `web/WEB-INF/web.xml` 中添加: ```xml <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> ``` ### 三、服务器配置 1. **添加 Tomcat** `Run → Edit Configurations → + → Tomcat Server → Local` - 指定 Tomcat 安装目录 - `Deployment → + → Artifact` → 选择项目 war 包 2. **启动验证** 访问 `http://localhost:8080/<项目名>/hello` 显示 "Hello Servlet!" ### 四、目录结构示例 ``` 项目根目录 ├── src │ └── HelloServlet.java ├── web │ ├── WEB-INF │ │ └── web.xml │ └── index.jsp (可选) └── lib └── servlet-api.jar ``` > **关键要点** > - 手动添加 `servlet-api.jar` 替代 Maven 依赖管理 > - 通过 `web.xml` 配置 Servlet 路由代替注解方式 > - Tomcat 需配置自动加载 `WEB-INF` 中的类文件 > - 每次新增依赖需手动加入 `lib` 目录并同步项目结构
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值