Gradle 依赖范围
Gradle dependency scopes
我在 Gradle 上做了一些试验,但作为主要的 Maven 用户,一些依赖范围让我感到困惑……
有些与 Maven 相同:
compile -> compile
runtime -> runtime
compileOnly -> provided
但我也遇到了 implementation
,这听起来像 Maven POM 的 parent
元素,但又不是。
有人可以解释一下什么是 implementation
和其他一些如果它们存在而我没有在这里提到(上面的测试版本很清楚不需要解释)吗?
而且如果implementation
不像Maven上的parent,那么如何在Gradle中有Maven的parent POM效果呢?
如评论所述,请查看 the documentation or even at this recent webcast(免责声明:我将共同主持该网络广播)
至于 Maven 比较,查看从 Maven 迁移/学习到 Gradle 与从 subversion 迁移到 git 相同:虽然一些词汇是相同的,但理解后者的模型有帮助不仅仅是比较。
简而言之:
- 不要在 Gradle 中使用
compile
或 runtime
,它们已被弃用。
implementation
涉及编译和 运行 您的应用程序所需的依赖项。
compileOnly
和 runtimeOnly
在上述 的上下文中应该是不言自明的
java-library
插件添加了 api
配置,这是为您的库的使用者需要 compile. 的依赖项保留的
没有直接等同于 Maven 父 pom。无论您是在谈论插件、构建配置还是依赖项,集中化的方式都是不同的。查看 multi-project authoring.
上的文档
我在 Gradle 上做了一些试验,但作为主要的 Maven 用户,一些依赖范围让我感到困惑……
有些与 Maven 相同:
compile -> compile
runtime -> runtime
compileOnly -> provided
但我也遇到了 implementation
,这听起来像 Maven POM 的 parent
元素,但又不是。
有人可以解释一下什么是 implementation
和其他一些如果它们存在而我没有在这里提到(上面的测试版本很清楚不需要解释)吗?
而且如果implementation
不像Maven上的parent,那么如何在Gradle中有Maven的parent POM效果呢?
如评论所述,请查看 the documentation or even at this recent webcast(免责声明:我将共同主持该网络广播)
至于 Maven 比较,查看从 Maven 迁移/学习到 Gradle 与从 subversion 迁移到 git 相同:虽然一些词汇是相同的,但理解后者的模型有帮助不仅仅是比较。
简而言之:
- 不要在 Gradle 中使用
compile
或runtime
,它们已被弃用。 implementation
涉及编译和 运行 您的应用程序所需的依赖项。compileOnly
和runtimeOnly
在上述 的上下文中应该是不言自明的
java-library
插件添加了api
配置,这是为您的库的使用者需要 compile. 的依赖项保留的
没有直接等同于 Maven 父 pom。无论您是在谈论插件、构建配置还是依赖项,集中化的方式都是不同的。查看 multi-project authoring.
上的文档