Maven 依赖项在 WEB-INF/lib 中不可见

2022-08-31 13:55:58

我遇到了一个奇怪的问题,使我的项目基于Maven。我在 Eclipse 中创建了一个新的 Maven 项目,并启用了 Dynamic Web 分面。但是在运行时,它现在会抛出,因为 Maven 依赖项未复制到目录。我甚至尝试在POM中添加复制依赖部分,但它没有帮助。ClassNotFoundExceptionWEB-INF/lib

这里的人似乎已经以正确的方式解决了这个问题,但我想他忘了提到解决方案::(


答案 1

这应该与eclipse和m2eclipse无关,并且可以选择更好的支持 - m2e-wtp。此外,您不需要复制依赖项。以下是一些可能的原因:

  • 你应该调用(或右键单击>maven>包)并获取一个war文件 - (在pom中)必须是mvn package<packaging>war
  • 您的依赖项应具有默认作用域(如果它们是,或者它们将不包含在存档中)providedtest
  • 如果在 eclipse 中的服务器上将项目作为动态 Web 项目运行,则应打开项目属性(右键单击>属性)并选择“部署程序集”。单击“添加”,选择“构建路径条目”,然后选择“maven 依赖项”。这将指示 WTP 将 maven 依赖项发送到服务器目录。

答案 2

首次安装 Maven Integration For Eclipse WTP (Help->Eclipse Marketplace)

然后在 Web 项目的 pom 中.xml只需添加:

    <packaging>war</packaging>

之后,只需右键单击项目 Maven -> Update Project,该项目应自动在部署程序集中为您添加 Maven 依赖项。


推荐