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).
|
||||
// Также явно выставляем 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 {
|
||||
groupId = rootProject.group.toString()
|
||||
artifactId = project.name
|
||||
version = rootProject.extra["projectVersion"] as String
|
||||
|
||||
pom {
|
||||
name = project.name
|
||||
description = providers.provider {
|
||||
|
||||
Reference in New Issue
Block a user