如何让eclipse在tomcat也打开的情况下将依赖的maven项目部署到tomcat?

e0uiprwp  于 2022-11-13  发布在  Eclipse
关注(0)|答案(2)|浏览(158)

主要问题:

当依赖项也作为姐妹项目在eclipse中打开时,是否有人在部署到tomcat时遇到过问题?

故事:

带有Maven插件的Eclipse非常智能,可以自动调整配置的部署程序集部分,这意味着如果您的Web项目中有一个依赖项,并且它也在Eclipse中打开,那么您将在部署程序集列表中获得(以及其他)两个条目:

  • 一个引用姐妹项目,输出到WEB-INF/lib/sister-project-1.0.0-SNAPSHOT.jar
  • 第二个引用输出到WEB-INF/lib/的常用Maven依赖项条目

然而,这似乎并不起作用:/即,来自姐妹项目的jar没有被构造/部署到tomcat服务器,这当然会导致良好的旧ClassNotFoundException
现在,在过去,我发誓这是有效的,但由于某种原因,它没有在当前版本的eclipse(我运行的是Version: 2018-09 (4.9.0))。

目前的解决方法:

相反,您在姊妹项目上运行一个快速的maven安装,然后关闭项目,这使得eclipse意识到它需要将这个依赖项作为一个常规的maven依赖项(从您的本地.m2)拉入,并且由于您刚刚安装了它,它具有您的代码的最新版本。
部署组件会自动更新,而且只具有:

  • 引用输出到WEB-INF/lib/的常用Maven依赖项条目的条目

(The项目指涉如预期移除)。
在这种情况下,它会继续查找jar,将其作为其他maven依赖项的一部分,并将其部署到服务器。
我的一个理论是,希望姐妹项目的输出(当它打开时)是一个.jar是错误的,相反,应该/可以将它与当前项目的类文件沿着路由到WEB-INF/classes/
另一种类似的理论是,在姐妹项目中,eclipse不能从它那里得到一个.jar文件输出,这是很奇怪的。
希望其他人以前也遇到过同样的情况

z5btuh9x

z5btuh9x1#

对我来说,这在2018-12年的eclipse中和2018-09年的eclipse中一样有效:在工作区中打开依赖项时,依赖项将构建为.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 .

ruarlubt

ruarlubt2#

我遇到了同样的问题。打开的子项目jar在WEB-INF/lib文件夹中,但不知何故Tomcat看不到。
我已经通过在Tomcat配置“Overview”页面中启用“Serve modules without publishing”解决了这个问题。

相关问题