3

我有一个 mavenized 项目,它依赖于我的团队目前正在处理的其他 4 个 mavenized 项目。我们启用了“工作区分辨率”。

如果我发布到 Tomcat,则 4 个项目的 jar 不可用,所以我看到各种 NoClassDefFoundError 异常。我认为 JUnit 测试或打包没有任何问题。(我运行包目标,生成的 war 文件包含我期望的 SNAPSHOT jar。)

我看到很多人提倡使用工作区分辨率,但是如果我们需要在 Tomcat 中进行测试,我们应该禁用它吗?或者我还可能缺少什么?

我们使用 Eclipse Helios、m2eclipse 插件、Maven 3.0.3。我什至安装了 m2extras 看看是否有帮助,但我没有看到任何区别。

谢谢

4

2 回答 2

0

如果您可以在使用 m2eclipse 目标构建之后进行一些手动刷新,那么您可以使此设置正常工作(我们一直在使用相同的工具链和设置)。

问题是,并非所有通过 m2eclipse 构建到工作区项目的外部更改都正确同步到您在 tomcat 中部署的 Web 应用程序。

因此,如果您在通过 m2eclipse 构建后遇到 NoClassDefFoundError 异常,以下应该会有所帮助(并非每次都需要):

  • 对您的 Maven 项目进行项目/清理
  • 对您的 Maven 项目执行刷新 (F5)
  • 清理已部署的 Web 应用程序(服务器上下文菜单)

是的,这很麻烦,但可以忍受。

于 2011-06-28T08:34:22.410 回答
0
  1. 从工作区中删除依赖项项目。
  2. 删除 .settings 目录和 .project 文件。
  3. 再次导入项目。
  4. 更新所有项目中的 Maven 依赖项。
于 2013-06-26T15:03:19.873 回答