Android Studio 3.0中的Plain Kotlin模块,`api`不支持?
在Gradle插件3.0(Android Studio 3.0)中开始, compile
命令已被替换为api
和implementation
。 这里解释https://blog.mindorks.com/implementation-vs-api-in-gradle-3-0-494c817a6fa
但是,对于下面的纯Kotlin模块,我不能使用api
。 即当我执行同步时,下面的代码将会有错误
apply plugin: 'kotlin' dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) api "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" }
错误是
Could not find method api() for arguments [org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-4] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. Open File`
我不得不使用“不推荐” compile
。
为什么在纯粹的kotlin
模块中不支持api
?
compile
在Gradle中不被弃用,而只在特定的插件,即Android和Java库插件中使用。 标准的Java插件没有做这个改变。 Kotlin插件也没有。 它可能最终(可能在解决了Java库文档中描述的问题之后)。