我有一个大型应用程序,其中包含许多 eclipse(实际上使用 Spring Source Toolsuite)项目,每个项目都有 ivy 管理的依赖项。我们目前已对其进行设置和工作,您可以在其中设置项目 A(生成 war 的动态 Web 项目)和项目 B(生成 jar),这样项目 A 依赖于项目 B,并且如果您的工作区中只有项目 A ,它会从ivy存储库中拉取项目B生成的jar文件。我们设置部署程序集以获取从 ivy 解析生成的 eclipse 库并将其放在 WEB-INF/lib 目录中,以便我们可以轻松部署到 tomcat。
通过手动流程,所有这些都有效。我可以对项目 B 进行更改,将其发布到我的本地 ivy 存储库,然后重新解决项目 A 上的依赖关系,然后我将获得新的项目 B jar 文件,所有内容都会按预期在 tomcat 上编译和更新。
当我将项目 A 的 ivy 解析设置更改为“解决工作区中的依赖关系”时,我遇到的问题就出现了。当我在项目 B 中进行更改时,项目 A 成功注意到更改并正确编译,但部署程序集中断。当我查看 tomcat 时,它有一个项目 A 上下文根的文件夹,但它是空的。如果我取消选中“解决工作区中的依赖关系”复选框,则会填充上下文根文件夹,并且所有内容都会返回到工作状态。
我可以继续执行手动过程,但是如果我可以让 ivy 首先使用我的工作区,然后如果我的工作区中不存在该项目,则从存储库中获取 jar,这将节省大量时间。任何建议将不胜感激!
最佳答案
解决方案是将实用程序模块facet添加到项目B(项目属性->项目Facets->实用程序模块),以便eclipse知道应该生成的jar文件的结构。
关于eclipse - IvyDE 使用 Eclipse 中的动态 Web 项目解决工作区中的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10936224/