我在Gradle上进行了一些实验,但由于主要是Maven用户,所以某些依赖范围使我感到困惑……
有些与Maven相同:
compile -> compile
runtime -> runtime
compileOnly -> provided
但是我也遇到了implementation
,听起来像Maven POM的parent
元素,但是同样也没有。
有人可以向我解释implementation
是什么,如果存在并且我在这里没有提及(上面的测试版本很明显不需要解释),可以给我解释吗?
如果implementation
与Maven上的父项不一样,我们如何在Gradle中获得Maven的父项POM效果?
答案 0 :(得分:0)
如前所述,请查看the documentation或什至this recent webcast(免责声明:我正在共同演示该网络广播)
对于Maven比较,视图从Maven迁移到Gradle的过程与从Subversion迁移到git的过程相同:虽然某些词汇是相同的,但了解后者的模型比进行比较更有帮助。
简而言之:
*不要在Gradle中使用compile
或runtime
,因为它们已被弃用。
* implementation
与编译和运行应用程序所需的依赖项有关。
* compileOnly
和runtimeOnly
在上述情况下应该是不言自明的
* java-library
插件添加了api
配置,该配置保留用于库的使用者需要编译的依赖。
没有Maven父pom的直接等效项。无论您是在谈论插件,构建配置还是依赖项,集中化的方式都不同。看看multi-project authoring上的文档。