关于webMaven项目中的jar包配置对web不起作用的问题

本文探讨了在Maven Web项目中,如何处理因依赖配置不当导致的ClassNotFoundException。关键在于理解资源目录结构,将依赖的jar包放置到输出目录,并提供了手动添加到WEB-INF/lib或自动配置OutputRoot的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于webMaven项目中的jar包配置对web不起作用的问题

问题

之前在用maven做web项目的时候遇到过一个问题,有些依赖明明在pom文件里面声明过了,项目结构的依赖中也有了,但是运行项目时依然会出现ClassNotFoundException异常,就像下面这样
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

原因

可以先看一下web资源目录是这样的
在这里插入图片描述
然后在项目结构中查看构件,是这样的
在这里插入图片描述
最后在输出目录下的结构是这样的
在这里插入图片描述
所以问题就出在这里:
当我们在Tomcat上跑程序的时候,我们是将项目的编译输出结果(也就是上图target下的内容)发布到Tomcat服务器
服务器会去你的编译结果里找项目中用到的工具类,输出目录里没有Tomcat就会报错,
而按平常的操作(配置web资源目录后直接添加构建)idea是不会把maven的依赖添加到输出目录中的,所以我们还需要将用到的jar包也放到编译结果当中,
不像我们平常写的在idea控制台运行的程序,那个是不用将工具类jar包放在输出目录里的,因为idea会去项目依赖中找jar包


解决方案

那么,解决这个问题,两个方案:

1. 在WEB-INF文件夹下添加一个lib文件夹,然后手动将项目需要用到的jar包都添加进去,然后重新编译一下,这也是为什么初学javaweb的时候老师通常会让你这么做的原因。但是我们既然使用maven做的项目这样就显得太麻烦了,所以我推荐用下面这个方案


2.
打开项目结构->点击构件->右键右侧的可用元素,点击“置于Output Root”,这样idea会自动的在WEB-INF下创建一个lib文件夹然后把这些jar包都放进去
在这里插入图片描述
在这里插入图片描述
最后在重新构建一下项目就可以了
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值