我有一个项目和库,源代码用Java编写,测试用Kotlin编写。
所有项目均由Gradle使用Kotlin插件构建。
但是我注意到Kotlin被作为传递依赖项添加到我的库中,尽管我只在测试中使用Kotlin。
- 如何避免将Kotlin添加为传递依赖项?**
settings.gradle
:
pluginManagement {
plugins {
id 'org.jetbrains.kotlin.jvm' version '1.6.10'
}
}
常见的build.gradle
:
plugins {
id 'org.jetbrains.kotlin.jvm'
}
dependencies {
testImplementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
testImplementation 'org.jetbrains.kotlin:kotlin-reflect'
testImplementation 'org.jetbrains.kotlin:kotlin-test'
testImplementation 'org.jetbrains.kotlin:kotlin-test-junit5'
}
当我构建依赖关系树时:
------------------------------------------------------------
Project ':commons-logging'
------------------------------------------------------------
testCompileClasspath - Compile classpath for compilation 'test' (target (jvm)).
+--- org.mycompany:lib-logging:1.0.0
| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.0 -> 1.3.72
| +--- org.jetbrains.kotlin:kotlin-stdlib:1.3.72
| | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.72
| | \--- org.jetbrains:annotations:13.0
| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72
| \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.72 (*)
+--- org.mycompany:lib-core:3.0.0
| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.30 -> 1.3.72 (*)
+--- org.mycompany:lib-spring:3.0.0
| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.30 -> 1.3.72 (*)
因此,所有这些Kotlin依赖性不应出现在org.mycompany
的工件中
1条答案
按热度按时间voase2hg1#
通过在
build.gradle
的dependencies部分添加以下代码,可以从库中排除Kotlin传递依赖项:恕我直言。