KotlinGradle插件仅用于测试

sf6xfgos  于 2023-01-31  发布在  Kotlin
关注(0)|答案(1)|浏览(176)

我有一个项目和库,源代码用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的工件中

voase2hg

voase2hg1#

通过在build.gradle的dependencies部分添加以下代码,可以从库中排除Kotlin传递依赖项:

dependencies {
testImplementation ('org.jetbrains.kotlin:kotlin-stdlib-jdk8') {
exclude group: 'org.jetbrains.kotlin'
}
testImplementation ('org.jetbrains.kotlin:kotlin-reflect') {
exclude group: 'org.jetbrains.kotlin'
}
testImplementation ('org.jetbrains.kotlin:kotlin-test') {
exclude group: 'org.jetbrains.kotlin'
}
testImplementation ('org.jetbrains.kotlin:kotlin-test-junit5') {
exclude group: 'org.jetbrains.kotlin'
}
}

恕我直言。

相关问题