在打开时如何使eclipse将依赖的Maven项目部署到tomcat?

时间:2019-03-19 22:09:03

标签: java eclipse maven tomcat

主要问题:

在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文件以进行输出,这有些奇怪。


希望以前有人遇到过这种情况。 :)

1 个答案:

答案 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