diff --git a/build.gradle.kts b/build.gradle.kts index def4bc8..7753edd 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -32,9 +32,18 @@ val binomRepoPassword = (findProperty("binom.repo.password") as String? ?: "").t subprojects { group = rootProject.group - // Передаём вычисленную projectVersion, а не rootProject.version (который - // в момент apply ещё может быть "unspecified" для subproject'ов). - version = rootProject.extra["projectVersion"] as String + + // KMP-плагин читает project.version на ранней стадии evaluation — ДО того + // как сработает внешний subprojects-блок. Если version ещё "unspecified", + // publication 'kotlinMultiplatform' создаётся с пустой version, и тогда + // maven-publish падает с 'InvalidMavenPublicationException: version cannot + // be empty'. Поэтому: + // 1) eagerly переопределяем version в rootProject.extra (см. выше) + // 2) на КАЖДЫЙ subproject вешаем beforeEvaluate, который выставляет + // version до того, как KMP-плагин начнёт создавать publications. + beforeEvaluate { + version = rootProject.extra["projectVersion"] as String + } apply(plugin = "maven-publish")