build: явно выставляем version/groupId в каждой MavenPublication
beforeEvaluate { version = ... } не помог — KMP-плагин всё равно фиксирует
publication 'kotlinMultiplatform' с пустой version до того, как это присваивание
срабатывает. В CI порядок обработки модулей отличается от локального (там
Gradle Daemon прогревает метаданные): сперва падало на :standalone, на
следующем ране — на :memory-vector.
Фикс: publications.withType<MavenPublication>().configureEach { groupId =
..., version = rootProject.extra['projectVersion'] } — это гарантирует,
что у КАЖДОЙ публикации (включая 'kotlinMultiplatform' для JVM-only KMP
модулей вроде :memory-vector, :storage-sqlite, :standalone) group/artifact/
version выставлены явно, а не взяты из project.version (которое может быть
не инициализировано в момент создания publication).
This commit is contained in:
@@ -61,7 +61,19 @@ subprojects {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Per-subproject POM-метаданные (name, scm, licenses, developers).
|
// Per-subproject POM-метаданные (name, scm, licenses, developers).
|
||||||
|
// Также явно выставляем version/group для каждой публикации. В KMP-модулях
|
||||||
|
// (особенно JVM-only с одним jvm() target) kotlin-multiplatform plugin
|
||||||
|
// создаёт publication 'kotlinMultiplatform' на ранней стадии evaluation,
|
||||||
|
// когда project.version ещё 'unspecified'. Простое присваивание
|
||||||
|
// subprojects { version = ... } НЕ перезаписывает уже зафиксированную
|
||||||
|
// version в publication → InvalidMavenPublicationException в CI.
|
||||||
|
// Явная установка version здесь гарантирует, что публикация всегда
|
||||||
|
// использует актуальное значение из rootProject.extra.
|
||||||
publications.withType<MavenPublication>().configureEach {
|
publications.withType<MavenPublication>().configureEach {
|
||||||
|
groupId = rootProject.group.toString()
|
||||||
|
artifactId = project.name
|
||||||
|
version = rootProject.extra["projectVersion"] as String
|
||||||
|
|
||||||
pom {
|
pom {
|
||||||
name = project.name
|
name = project.name
|
||||||
description = providers.provider {
|
description = providers.provider {
|
||||||
|
|||||||
Reference in New Issue
Block a user