我有两次 Kotlin stdlib 吗?
Do I have Kotlin stdlib twice?
在Android工作室3
gradle -> --> 任务 --> android --> android依赖项:
> Task :app:androidDependencies
debug
debugCompileClasspath - Dependencies for compilation
+--- androidx.core:core-ktx:1.0.1@aar
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.21@jar
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.21@jar
....
在我的应用程序模块中 build.gradle 我有:
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
Furtheron,我还发现:
debugRuntimeClasspath - Dependencies for runtime/packaging
+--- androidx.core:core-ktx:1.0.1@aar
+--- com.google.android.material:material:1.1.0-alpha04@aar
+--- androidx.appcompat:appcompat:1.1.0-alpha01@aar
+--- androidx.constraintlayout:constraintlayout:1.1.3@aar
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.21@jar
+--- :a_lib
+--- com.github.nisrulz:qreader:2.1.2@aar
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.21@jar
+--- org.jetbrains.kotlin:kotlin-reflect:1.3.20@jar
...
Q1:如何找到第二个kotlin-stdlib-jdk7的来源?可能来自第三方库?
Q2:如您所见,使用了Kotlin 1.3.21和1.3.20。我敢打赌 1.3.20 带有另一个库,这会导致未来出现问题吗?
正如您从 its pom 中看到的那样,-jdk8
取决于 -jdk7
和 kotlin-stdlib
,这就是您同时看到两者的原因。 -jdk*
工件仅包含 JDK 7 和 JDK 8 特定 features/extensions,不会导致整个 JDK 被导入两次。
来自doc:
There are extended versions of the standard library that add support for some of the features of JDK 7 and JDK 8
要回答问题 2,该依赖关系来自另一个依赖关系。您应该能够通过 运行 gradle dependencies
.
找出它是从哪里导入的
在Android工作室3 gradle -> --> 任务 --> android --> android依赖项:
> Task :app:androidDependencies
debug
debugCompileClasspath - Dependencies for compilation
+--- androidx.core:core-ktx:1.0.1@aar
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.21@jar
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.21@jar
....
在我的应用程序模块中 build.gradle 我有:
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
Furtheron,我还发现:
debugRuntimeClasspath - Dependencies for runtime/packaging
+--- androidx.core:core-ktx:1.0.1@aar
+--- com.google.android.material:material:1.1.0-alpha04@aar
+--- androidx.appcompat:appcompat:1.1.0-alpha01@aar
+--- androidx.constraintlayout:constraintlayout:1.1.3@aar
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.21@jar
+--- :a_lib
+--- com.github.nisrulz:qreader:2.1.2@aar
+--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.21@jar
+--- org.jetbrains.kotlin:kotlin-reflect:1.3.20@jar
...
Q1:如何找到第二个kotlin-stdlib-jdk7的来源?可能来自第三方库?
Q2:如您所见,使用了Kotlin 1.3.21和1.3.20。我敢打赌 1.3.20 带有另一个库,这会导致未来出现问题吗?
正如您从 its pom 中看到的那样,-jdk8
取决于 -jdk7
和 kotlin-stdlib
,这就是您同时看到两者的原因。 -jdk*
工件仅包含 JDK 7 和 JDK 8 特定 features/extensions,不会导致整个 JDK 被导入两次。
来自doc:
There are extended versions of the standard library that add support for some of the features of JDK 7 and JDK 8
要回答问题 2,该依赖关系来自另一个依赖关系。您应该能够通过 运行 gradle dependencies
.