【问题标题】:Eclipse not loading dependent module in a multi module maven projectEclipse 未在多模块 Maven 项目中加载依赖模块
【发布时间】:2013-06-07 12:08:41
【问题描述】:

环境{git, maven, spring3, tomcat7, STS3.2/Eclipse4.2}

maven 项目结构如下

Base
--CoreApi
--CoreImpl
--ModuleBase
----ModuleApi
----ModuleImpl
----ModuleWeb

ModuleWeb 编译时依赖于 CoreApi (jar)、ModuleApi (jar) 和 ModuleImpl (jar)。

当我将 ModuleWeb 发布到 tomcat(使用 STS)并启动 tomcat 时,我看到 ModuleImpl 没有复制到 WEB-INF/lib 文件夹,最终导致 ClassNotFound 像例外。然而 ModuleApi 和 CoreApi 被复制到库中。这就是问题所在!

值得一提的是,我当然可以从终端执行maven clean install,而不会出现任何问题,它会成功生成 jars 和 war。

在 STS > ModuleWeb 的项目属性 > Deployment Assembly

构建路径顺序和导出如下所示:

当然,如果我手动将 ModuleImpl 复制到 WEB-INF/lib,一切正常,但是,这不是应该的。那么,有什么线索吗?

话虽如此,在我不得不在 .gitignore 中进行一些与 git 相关的更改以添加 .settings 和 .classpath 并进一步执行 git rm -r --cachedgit add . 之前,一切正常,还有一系列项目清理、提交和 Maven 从终端安装。我认为有些事情搞砸了。

【问题讨论】:

    标签: eclipse spring maven tomcat


    【解决方案1】:

    这是 Eclipse 中 m2e-wtp 插件的一个持续问题:

    https://bugs.eclipse.org/bugs/show_bug.cgi?id=398138

    我还没有弄清楚它何时出现的具体条件,也没有具体的解决方法。如果可以的话,我建议更改依赖结构。例如,使ModuleApi 依赖于ModuleImpl(即使它们不是),或者CoreApi 依赖于ModuleImpl

    【讨论】:

    • ModuleWeb 已经依赖于问题中提到的 ModuleImpl。
    • 啊,我正在将您的图表视为依赖关系树。无论如何,这只是一个例子。尝试将ModuleImpl 作为依赖项添加到ModuleApiCoreApi
    • 试过了。没有改善情况。标记现在有错误在项目“hawk-health-hck-api”的构建路径中检测到一个循环。该周期包括项目 {hawk-health-hck-api, hawk-health-hck-impl, hawk-health-hck-web}
    猜你喜欢
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多