gradle 项目之间的 Eclipse gradle 工作区分辨率不起作用
eclipse gradle workspace resolution between gradle projects not working
2 gradle 个项目,A 和 B,其中 A 对定义的 B 具有编译依赖性。为 Maven 和 gradle 项目启用了 JAR 的重新映射。我试过启用和禁用自定义工具模型。我在 init.d 目录下的文件中定义了本地存储库。
问题一:为什么在解析项目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 知道的工作空间分辨率。
'remapping' 依赖项在工作区中 而不是 'resolve' 项目,因为它将工作区视为某种存储库。
相反,Gradle 从您在构建脚本中定义的任何存储库中正常解析依赖项。然后该工具将尝试确定某些 resolved jar 依赖项是否与您工作区中的项目相对应。它然后'replaces'(或'remaps')jar 依赖与项目依赖。
因此,这意味着您必须至少将 jar 发布到某个可以解决问题的地方,然后才能开始重新映射。(从那时起,您不必重新发布 jar,因为它不会解析的 jar 不是 'up-to-date')
真的很重要
其他一些可能有用的知识...
重新映射仅适用于工具管理的依赖项,因此您必须启用 'dependency management'。
有一个 bug 使它不适用于 'flat file' 存储库。可能还有其他情况受到类似错误的影响。如果您 运行 进入其中,您应该报告此类错误。 (尽管我自己并没有得到 Gradle 人们对平面文件错误的关注)
2 gradle 个项目,A 和 B,其中 A 对定义的 B 具有编译依赖性。为 Maven 和 gradle 项目启用了 JAR 的重新映射。我试过启用和禁用自定义工具模型。我在 init.d 目录下的文件中定义了本地存储库。
问题一:为什么在解析项目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 知道的工作空间分辨率。
'remapping' 依赖项在工作区中 而不是 'resolve' 项目,因为它将工作区视为某种存储库。
相反,Gradle 从您在构建脚本中定义的任何存储库中正常解析依赖项。然后该工具将尝试确定某些 resolved jar 依赖项是否与您工作区中的项目相对应。它然后'replaces'(或'remaps')jar 依赖与项目依赖。
因此,这意味着您必须至少将 jar 发布到某个可以解决问题的地方,然后才能开始重新映射。(从那时起,您不必重新发布 jar,因为它不会解析的 jar 不是 'up-to-date')
真的很重要其他一些可能有用的知识...
重新映射仅适用于工具管理的依赖项,因此您必须启用 'dependency management'。
有一个 bug 使它不适用于 'flat file' 存储库。可能还有其他情况受到类似错误的影响。如果您 运行 进入其中,您应该报告此类错误。 (尽管我自己并没有得到 Gradle 人们对平面文件错误的关注)