我有这个奇怪的问题使我的项目基于Maven。我在Eclipse中创建了一个新的 Maven 项目,并启用了Dynamic Web方面。但是在运行时期间它会抛出ClassNotFoundException
,因为Maven依赖项不会复制到WEB-INF/lib
目录。我甚至尝试在POM中添加 copy-dependencies 部分,但它没有帮助。
有人here似乎以正确的方式解决了这个问题,但我猜他忘了提到解决方案::(
答案 0 :(得分:167)
这应该与eclipse和m2eclipse无关,并且可选地为了更好的支持 - m2e-wtp。此外,您不需要复制依赖项。以下是一些可能的原因:
mvn package
(或右键单击&gt; maven&gt;包)并获取war文件 - <packaging>
(在pom中)必须为war
provided
或test
它们将不会包含在存档中)答案 1 :(得分:12)
首先安装 Eclipse WTP的Maven Integration (帮助 - &gt; Eclipse Marketplace)
然后在你的web项目的pom.xml中添加:
<packaging>war</packaging>
之后右键单击项目,Maven - &gt;更新项目,它应该在部署程序集中为您自动添加Maven依赖项。
答案 2 :(得分:5)
右键单击项目&gt; Maven&gt;更新Maven项目&gt;好的,为我修好了
答案 3 :(得分:4)
检查项目的部署程序集属性。我看到一些mvn eclipse:eclipse
生成的Eclipse项目有时会将资产部署到错误的位置。据我所知,新的部署程序集与早期版本的Eclipse 3.6(Helios)存在一些问题。
答案 4 :(得分:3)
我刚做了maven - &gt;更新项目为我工作。
答案 5 :(得分:0)
答案 6 :(得分:0)
如果您查看部署并发现WEB-Inf / lib没有Maven依赖项,那么确保这些Maven依赖项在您的部署程序集中是至关重要的,如所选答案中所述。
但是要注意Eclipse,即使使用Maven更新也不要刷新所有内容。如果清理,重建和重新部署,但仍未看到正在填充的lib文件夹,请尝试通过服务器&gt;添加和删除删除并重新将应用程序添加到服务器部署。
这为我解开了系统。
答案 7 :(得分:0)
右键单击项目 - &gt;部署大会: 看看你是否有Maven依赖关系以及其他所有人。 如果不, 右键单击项目 - &gt; Maven - &gt;启用工作区解析
(也许然后是Maven - &gt;更新项目,但是再看看“部署程序集”,看看你有什么。) 这为我解决了(终于!)
答案 8 :(得分:0)
在Eclipse上,选择您的Web项目->右键单击->属性->部署程序集->添加-> Java构建路径条目-> Maven依赖项
通过此步骤,完全发布后,maven库将包含在WEB-INF / lib中。