Maven与Gradle lib依赖性差异

时间:2016-08-30 00:34:26

标签: eclipse maven gradle dependencies multi-module

鉴于我有以下项目:

parent
--- common
--- child1 (depends on common)

unrelated (depends on common)

parentunrelated都是Maven项目并在同一IDE工作区中打开时(我在IDEA中验证过,但我被告知Eclipse的行为是相同的),我可以从{{{ 1}}到unrelated,无需链接来源。重构common中的任何内容都会在common中正确找到它的引用。由于Maven没有区分子模块和lib依赖项,因此上面显示的两个依赖项都以相同的方式声明。

使用Gradle时,unrelated似乎不知道同一工作区中存在unrelated。重构commoncommon中的任何内容。源代码仅在子模块中链接,如unrelatedchild1之间。

我正在查看Gradle文档23.8.3.3. Conditionally substituting a dependency

common

然而,如果请求的模块是一个子项目,这看起来似乎没有用,这似乎没有用,因为如果它是一个子项目,我们无论如何都要使用项目依赖,而不是lib依赖。

任何想法如何在Gradle中获得Maven的行为?有人在IDEA forum询问了这个问题,并告诉他创建自己的自定义插件。 IDEA声称这个功能将在2016.3版本中出现,但他们撒了谎。 https://youtrack.jetbrains.com/issue/IDEA-114469

使用最新的Gradle 3.0。为了完整披露,我也在Gradle论坛上发布了这个问题。

0 个答案:

没有答案