【问题标题】:Maven workspace resolution missing jars for local Tomcat testingMaven 工作区解析缺少用于本地 Tomcat 测试的 jar
【发布时间】:2011-01-13 17:19:25
【问题描述】:

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

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

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

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

谢谢

【问题讨论】:

  • 作为一家公司,我们决定关闭 Workspace Resolution。

标签: m2eclipse maven-3


【解决方案1】:

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

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

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

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

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

【讨论】:

    【解决方案2】:
    1. 从工作区中移除依赖项目。
    2. 删除 .settings 目录和 .project 文件。
    3. 再次导入项目。
    4. 更新所有项目中的 maven 依赖项。

    【讨论】:

      猜你喜欢
      • 2022-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-24
      • 2015-02-22
      • 2020-09-05
      • 2018-02-10
      • 1970-01-01
      相关资源
      最近更新 更多