环境{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被复制到lib。那就是问题!
要提一下,我当然可以从终端做maven clean install
而没有任何问题,它成功地生成了罐子和战争。
在STS中> ModuleWeb的项目属性>部署程序集
并且构建路径顺序和导出如下所示:
当然,如果我手动将ModuleImpl复制到WEB-INF / lib,一切正常,但不是应该如何。那么,任何线索?
话虽如此,一切正常,直到我必须在.gitignore中进行一些与git相关的更改才能添加.settings和.classpath并进一步执行git rm -r --cached
和git add .
从终端安装项目清洁,提交和maven安装。我觉得有些搞砸了。
答案 0 :(得分:0)
这是Eclipse中m2e-wtp
插件的持续问题:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=398138
我还没有弄清楚它出现的具体情况,也没有具体的解决方法。如果可以,我建议更改依赖关系结构。例如,ModuleApi
取决于ModuleImpl
(即使它们不是),或CoreApi
依赖于ModuleImpl
。