Gradle依赖范围

时间:2019-04-05 06:58:21

标签: maven gradle parent-pom

我在Gradle上进行了一些实验,但由于主要是Maven用户,所以某些依赖范围使我感到困惑……

有些与Maven相同:

compile -> compile
runtime -> runtime
compileOnly -> provided

但是我也遇到了implementation,听起来像Maven POM的parent元素,但是同样也没有。

有人可以向我解释implementation是什么,如果存在并且我在这里没有提及(上面的测试版本很明显不需要解释),可以给我解释吗?

如果implementation与Maven上的父项不一样,我们如何在Gradle中获得Maven的父项POM效果?

1 个答案:

答案 0 :(得分:0)

如前所述,请查看the documentation或什至this recent webcast(免责声明:我正在共同演示该网络广播)

对于Maven比较,视图从Maven迁移到Gradle的过程与从Subversion迁移到git的过程相同:虽然某些词汇是相同的,但了解后者的模型比进行比较更有帮助。

简而言之: *不要在Gradle中使用compileruntime,因为它们已被弃用。 * implementation与编译和运行应用程序所需的依赖项有关。 * compileOnlyruntimeOnly在上述情况下应该是不言自明的 * java-library插件添加了api配置,该配置保留用于库的使用者需要编译的依赖。

没有Maven父pom的直接等效项。无论您是在谈论插件,构建配置还是依赖项,集中化的方式都不同。看看multi-project authoring上的文档。