Многопроектная сборка Gradle с различными Kotlin версиями компилятора - PullRequest
0 голосов
/ 28 января 2020

У меня есть Kotlin мульти проект, который примерно так структурирован:

          +-----------------+
          |                 |
          |  Main           |
          |  Kotlin 1.2     |
          |                 |
          |                 |
          |                 |
          +--+------------+-+
             |            |
             |            |
+------------v----+   +---v--------------+
|                 |   |                  |
| Sub 1           |   | Sub 2..n         |
| Kotlin 1.3      |   | Kotlin 1.2       |
|                 |   |                  |
|                 |   |                  |
|                 |   |                  |
|                 |   |                  |
+-----------------+   +------------------+

Мне нужно скомпилировать Sub 1 с org.jetbrains.kotlin:kotlin-compiler-embeddable:1.3.*, а все остальные с org.jetbrains.kotlin:kotlin-compiler-embeddable:1.2.*.

Основной файл Gradle выглядит примерно так:

buildscript {
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.2.71"
    }
}


apply plugin: "kotlin"


dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.71"
    // ... more

}

С файлом вспомогательного Gradle для проекта 1.3 выглядит так:

buildscript {    
    repositories {
        mavenCentral()
        jcenter()
    }

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.61"
    }
}

plugins {
    id "application"
}

apply plugin: "java"
apply plugin: "kotlin"

java {
    disableAutoTargetJvm()
}


dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.61"

    // ... more
}

Running ./gradlew server:dependencies | grep 1.2.71, однако все еще показывает kotlin зависимости компилятора как 1.2:

|    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.71 -> 1.3.61 (*)
|    |    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.71 -> 1.3.61 (*)
|    |    +--- org.jetbrains.kotlin:kotlin-reflect:1.2.71 -> 1.3.61 (*)
|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.71 -> 1.3.61 (*)
|    |    |    +--- org.jetbrains.kotlin:kotlin-reflect:1.2.71 -> 1.3.61
|    |    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.71 -> 1.3.61 (*)
|    |    +--- org.jetbrains.kotlin:kotlin-reflect:1.2.71 -> 1.3.61 (*)
|    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.71 -> 1.3.61 (*)
|    |    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.71 -> 1.3.61 (*)
|    |    +--- org.jetbrains.kotlin:kotlin-reflect:1.2.71 -> 1.3.61 (*)
\--- org.jetbrains.kotlin:kotlin-compiler-embeddable:1.2.71
     +--- org.jetbrains.kotlin:kotlin-stdlib:1.2.71
     |    +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.2.71
     +--- org.jetbrains.kotlin:kotlin-script-runtime:1.2.71
     \--- org.jetbrains.kotlin:kotlin-reflect:1.2.71
          \--- org.jetbrains.kotlin:kotlin-stdlib:1.2.71 (*)
\--- org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.2.71
|    |    |    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.71 -> 1.3.61 (*)
|    |    |    +--- org.jetbrains.kotlin:kotlin-reflect:1.2.71 -> 1.3.61
|    |    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.71 -> 1.3.61 (*)
|    |    +--- org.jetbrains.kotlin:kotlin-reflect:1.2.71 -> 1.3.61 (*)
|    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.71 -> 1.3.61 (*)
|    |    +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.71 -> 1.3.61 (*)
|    |    +--- org.jetbrains.kotlin:kotlin-reflect:1.2.71 -> 1.3.61 (*)

Как я могу переопределить kotlin версию компилятора для этого подпроекта?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...