Gradle 依赖范围

pos*_*ver 6 gradle maven parent-pom

我正在用 Gradle 进行一些实验,但作为主要的 Maven 用户,一些依赖范围让我感到困惑……

有些与 Maven 相同:

compile -> compile
runtime -> runtime
compileOnly -> provided
Run Code Online (Sandbox Code Playgroud)

但我也遇到了implementation这听起来像parentMaven POM的元素,但又不是。

有人可以向我解释一下是什么implementation以及其他一些,如果它们存在而我没有在这里提到(上面的测试版本很明显不需要解释)?

如果implementation不像Maven上的父级,我们如何在Gradle中具有Maven的父级POM效果?

Lou*_*met 13

正如所评论的,请查看文档或什至最近的网络广播(免责声明:我正在共同介绍该网络广播)

至于Maven比较,从Maven迁移/学习到Gradle和从subversion迁移到git一样:虽然有些词汇是一样的,理解后者的模型比比较更有帮助。

简而言之:

  • 不要在 Gradle 中使用compileruntime,它们已被弃用。
  • implementation 与编译和运行应用程序所需的依赖项相关。
  • compileOnly并且runtimeOnly在上述上下文中应该是不言自明的
  • java-library插件添加了api为库的使用者需要编译的依赖项保留的配置。

没有与 Maven 父 pom 的直接等价物。无论您是在谈论插件、构建配置还是依赖项,集中的方式都是不同的。查看有关多项目创作的文档。