В чем разница между простыми и исходными зависимостями при работе с плагином Kotlin MPP? - PullRequest
1 голос
/ 17 января 2020

Я использую плагин Kotlin MPP (с поддержкой .kts), и пока я читал какой-то код, я натолкнулся на build.gradle.kts файлы вроде этого:

kotlin {
    sourceSets {
        commonMain {
            dependencies {
                api(kotlinxCollectionsImmutable)
            }
        }
    }

    dependencies {
        with(Libs) {
            commonMainApi(kotlinStdLibCommon)
            commonMainApi(kotlinxCoroutinesCommon)
        }
    }
}

Что такое разница между объявлением зависимости api в пределах sourceSet по сравнению с объявлением зависимости commonMainApi? Есть ли?

1 Ответ

1 голос
/ 23 января 2020

Без разницы. CommonMainApi - это просто альтернативный способ сделать то же самое и больше не рекомендуется. Ссылка - https://kotlinlang.ru/docs/reference/building-mpp-with-gradle.html

Альтернативный способ указания зависимостей - использование встроенного DSL Gradle на верхнем уровне с именами конфигурации, требованиями для шаблоном: [перевод: альтернативно, зависимости могут быть объявлены указание имен конфигурации на верхнем уровне с использованием встроенного Gradle DSL]

dependencies {
    commonMainApi 'com.example:foo-common:1.0'
    jvm6MainApi 'com.example:foo-jvm6:1.0'
}

Интересно, что этот документ описывается как перевод https://kotlinlang.org/docs/reference/building-mpp-with-gradle.html, где этот абзац ( об альтернативном синтаксисе) полностью отсутствует, поэтому можно только сделать вывод, что версия Engli sh была обновлена, а альтернативный синтаксис удален как не рекомендуемый или устаревший на данный момент.

...