eclipse gradle工作区在gradle项目之间的解析不起作用

eclipse gradle工作区在gradle项目之间的解析不起作用,gradle,gradle-eclipse,Gradle,Gradle Eclipse,2个gradle项目,A和B,其中A定义了对B的编译依赖关系。maven和gradle项目启用JAR的重新应用。我已尝试启用和禁用自定义工具模型。我在init.d目录下的文件中定义了本地存储库 问题1:为什么在解析项目A的依赖项时,会出现项目B的未解析依赖项错误?即使B没有部署到任何存储库,本地工作区解析也应该以与maven项目相同的方式启动并解析它(顺便说一句) 问题2:除了build.gradle中定义的组和版本外,B是否需要有任何特殊的内容才能用于工作区解析 我使用eclipse 4.4.

2个gradle项目,A和B,其中A定义了对B的编译依赖关系。maven和gradle项目启用JAR的重新应用。我已尝试启用和禁用自定义工具模型。我在init.d目录下的文件中定义了本地存储库

问题1:为什么在解析项目A的依赖项时,会出现项目B的未解析依赖项错误?即使B没有部署到任何存储库,本地工作区解析也应该以与maven项目相同的方式启动并解析它(顺便说一句)

问题2:除了build.gradle中定义的组和版本外,B是否需要有任何特殊的内容才能用于工作区解析

我使用eclipse 4.4.1和Gradle IDE 3.7.0.201503301651-CI-B39运行。我也尝试过使用相同的eclipse版本发布稳定版本


使用--debug运行时,我可以看到gradle试图从本地存储库解析,而不是放弃?

这两个问题的答案归结为一个事实,即没有工作区解析,正如您在maven/m2e中可能知道的那样

依赖项的“重新映射”不会“解析”工作区中的项目,因为它将工作区视为某种存储库

相反,依赖关系通常由Gradle从构建脚本中定义的任何存储库中解析。然后,该工具将尝试确定某些已解析的jar依赖项是否对应于工作区中的项目。然后,它将jar依赖项“替换”(或“重新映射”)为项目依赖项

因此,这意味着您必须至少将jar发布到某个可以解析的地方,然后才能重新映射。(从那时起,您不必重新发布jar,因为解析的jar是否“最新”并不重要)

了解一些其他可能有用的事情

  • 重新映射仅应用于工具管理的依赖项,因此必须启用“依赖项管理”

  • 有一个原因使得这不适用于“平面文件”回购。可能还有其他受类似错误影响的情况。如果你遇到这些bug,你应该报告它们。(尽管我自己运气不太好,没有引起格雷德尔家族对平面文件bug的注意)


感谢您的详细回答。如果回答了您的问题,您应该接受答案和/或单击其“向上投票”按钮。这是stackoverflow提供的用于指示帖子质量的机制。看起来我在工作中发表的评论没有被公司防火墙阻止,而是由stackoverflow实际处理,但有很大的延迟。。。在我在家标记你的答案之前,你发表了评论:)再次感谢!