Я использую kotlin-gradle-plugin, настраивая его в build.gradle следующим образом:
buildscript {
ext {
springBootVersion = '2.1.2.RELEASE'
kotlinVersion = '1.3.11'
}
repositories {
mavenLocal()
mavenCentral()
maven { url "http://repo.spring.io/plugins-release" }
maven { url "https://plugins.gradle.org/m2/" }
}
dependencies {
classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}"
classpath "org.jetbrains.kotlin:kotlin-allopen:${kotlinVersion}"
}
apply plugin: 'kotlin'
apply plugin: 'kotlin-spring'
Когда я запускаю gradle dependencies
, я получаю следующий kotlinCompilerClasspath среди прочего:
kotlinCompilerClasspath
\--- org.jetbrains.kotlin:kotlin-compiler-embeddable:1.3.11
+--- org.jetbrains.kotlin:kotlin-stdlib:1.3.11
| +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.3.11
| \--- org.jetbrains:annotations:13.0
+--- org.jetbrains.kotlin:kotlin-script-runtime:1.3.11
\--- org.jetbrains.kotlin:kotlin-reflect:1.3.11
\--- org.jetbrains.kotlin:kotlin-stdlib:1.3.11 (*)
Когда я отключил транзитивные зависимости в моем build.gradle следующим образом:
configurations {
all {
transitive = false
resolutionStrategy {
// fail eagerly on version conflict (includes transitive dependencies)
// e.g. multiple different versions of the same dependency (group and name are equal)
failOnVersionConflict()
}
}
}
Теперь, когда я запускаю gradle dependencies
, я получаю следующий kotlinCompilerClasspath
kotlinCompilerClasspath
\--- org.jetbrains.kotlin:kotlin-compiler-embeddable:1.3.11
Как можноЯ добавляю зависимости в вышеупомянутый kotlinCompilerClasspath, все еще используя транзитивную = ложную конфигурацию?
Например, я попытался добавить зависимость org.jetbrains.kotlin:kotlin-stdlib
в блок обычных зависимостей и в блок buildscript, но все же вышеупомянутый kotlinCompilerClasspath не делаетизменить.
версия Gradle
gradle --version
------------------------------------------------------------
Gradle 5.1.1
------------------------------------------------------------
Build time: 2019-01-10 23:05:02 UTC
Revision: 3c9abb645fb83932c44e8610642393ad62116807
Kotlin DSL: 1.1.1
Kotlin: 1.3.11
Groovy: 2.5.4
Ant: Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM: 1.8.0_191 (Oracle Corporation 25.191-b12)
OS: Mac OS X 10.14.2 x86_64
ОБНОВЛЕНИЕ
Как рекомендовано горячей клавишей ниже, я отфильтровал kotlin изКонфигурация выглядит следующим образом.
configurations {
matching { !it.name.toLowerCase().contains('kotlin') }.all {
transitive = false
resolutionStrategy {
// fail eagerly on version conflict (includes transitive dependencies)
// e.g. multiple different versions of the same dependency (group and name are equal)
failOnVersionConflict()
}
}
}