很长一段时间以来,这一直困扰着我。我仍然不知道 Eclipse 是否有办法使用任何插件来实现某些 gradle 项目(在工作区中)依赖于其他 gradle 项目(也在工作区中),而这些项目来自其他不同的位置(例如,单独的源代码库) .
它们最终不再依赖于彼此,而是依赖于彼此已发布的工件。我必须在构建脚本中明确支持编码,作为 eclipseClasspath eclipse 插件的一部分,用于 gradle 创建 Eclipse 工作区位,同时被告知(在命令行上)这些其他项目将存在于工作区中。
这不仅繁琐且不可维护,还需要预先了解工作区中可能存在的内容、这些项目的名称、繁琐的命令行等。
是否有解决方案,或者是否有解决方案?
例子:
假设有一个名为“A”的“产品”。它可以有多个 gradle 项目,比如“一个”和“两个”。这些作为 A:one 和 A:two jar 工件发布到 maven 或 ivy 风格的 repo。说“二”取决于“一”。您可以将其导入 Eclipse,一切都会好起来的。Eclipse 项目“二”将取决于 Eclipse 项目“一”,而不是从 maven/ivy 存储库下载的 one.jar。
还有另一个单独的产品“B”。它也有多个 gradle 项目,比如“foo”和“bar”。假设“bar”依赖于“foo”,而“foo”恰好依赖于 A:one。一切都还好。如果将“B”项目导入 Eclipse,“bar”和“foo”项目将出现,“bar”将依赖于“foo”项目,而不是 jar....而 foo 将依赖于自动下载的 A:one罐。
但是必须有人同时在 A 和 B 上工作。因此他们将所有项目导入 Eclipse 工作区。他们修改了 A:one 中的某些内容(比如修复了一个错误)并想通过从 B 运行某些内容来尝试。他们的更改将不可见,因为 B:foo 依赖于以前下载的 A:one 的已发布 jar 工件,而不是Eclipse 项目“一”。这使调试、验证等变得复杂。手动更新项目依赖项是短暂的——直到下一次依赖项刷新。