【发布时间】:2021-05-23 19:27:55
【问题描述】:
我是 Gradle 的新手,现在正在学习配置。许多开发人员在他们的 build.gradle 中使用 implementation 配置,但我不明白它的用途。
我正在阅读gradle document,发现配置是由 java 插件提供的。但描述对我来说还不容易。
实现扩展编译
仅实现依赖项。
这个术语中的“仅实现”是什么意思?
【问题讨论】:
我是 Gradle 的新手,现在正在学习配置。许多开发人员在他们的 build.gradle 中使用 implementation 配置,但我不明白它的用途。
我正在阅读gradle document,发现配置是由 java 插件提供的。但描述对我来说还不容易。
实现扩展编译
仅实现依赖项。
这个术语中的“仅实现”是什么意思?
【问题讨论】:
我对 Gradle 也很陌生,但仅通过查看下面的图片(显示在您所指的页面上),它就很有意义。
所以你有蓝色框 compileClasspath 和 runtimeClassPath。
compileClasspath 是运行 gradle build 时成功构建所必需的。编译时将出现在类路径中的库将是使用 compileOnly 或 implementation 在 gradle 构建中配置的所有库。
然后我们有runtimeClasspath,这些都是您使用implementation 或runtimeOnly 添加的包。所有这些库都将添加到您在服务器上部署的最终构建文件 (jar) 中。
如图所示,如果您希望一个库既可用于编译,又希望将其添加到构建文件中,则应使用implementation。
runtimeOnly 的示例可以是数据库驱动程序。compileOnly 的示例可以是 servlet-api。implementation 的一个例子可以是 spring-core。
【讨论】: