主要问题:
在Eclipse中作为姊妹项目打开依赖项时,是否有人遇到部署到tomcat的问题?
故事:
带有Maven插件的Eclipse足够聪明,可以自动调整配置的部署程序集部分,这意味着,如果您在Web项目中具有依赖项并且它也在eclipse中打开,那么您将获得两个(其中包括)部署程序集列表中的条目:
一个引用姊妹项目并输出到WEB-INF/lib/sister-project-1.0.0-SNAPSHOT.jar
还有第二个引用了通常的Maven Dependencies条目,该条目输出到WEB-INF/lib/
这似乎不起作用:/
即。不会将姊妹项目中的jar构造/部署到tomcat服务器,这当然会导致旧的ClassNotFoundException
。
现在,在过去,我发誓这行得通,但由于某种原因,它不在当前吗?版本的Eclipse(我正在运行Version: 2018-09 (4.9.0)
)。
当前解决方法:
相反,您可以在姐妹项目上运行快速的maven安装,然后关闭该项目。这使eclipse意识到需要将这种依赖作为常规的maven依赖(来自本地.m2)引入,并且由于您刚刚在那安装了它,所以它具有代码的最新版本。
部署程序集自动更新,并且具有:
WEB-INF/lib/
的常规Maven Dependencies条目(按预期删除了项目引用)。
在这种情况下,它继续前进,找到了jar作为其他Maven依赖项的一部分,并愉快地将其部署到服务器上。
我有一个理论是,希望姊妹项目的输出(当它打开时)是一个.jar是错误的,而是应该/应该将其与该路由一起发送到WEB-INF/classes/
当前的项目类文件。
另一种类似的理论是,在姐妹项目中,eclipse无法从中获取.jar文件以进行输出,这有些奇怪。
希望以前有人遇到过这种情况。 :)
答案 0 :(得分:0)
对我来说,这可以在Eclipse 2018-12中正常运行,也可以在2018-09中正常工作:在工作区中打开时,依赖项将构建到.jar
并部署到WEB-INF/lib
中。
有一个设置,您应该检查每个参与的项目:
Project properties (Alt+Return) -> Maven -> [x] Resolve dependencies from Workspace projects
,
当事情变得奇怪的时候,通常也有助于进行Maven项目更新:
Open the project context menu -> Maven -> Update Project -> All
。