Начиная с Gradle 6.0, подключаемый модуль Maven Publish также будет публиковать метаданные модуля Gradle. Метаданные имеют расширение файла .module
, и вы можете увидеть его в репозитории здесь.
Если вы откроете pom file, вы заметите, что вверху есть комментарий:
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do_not_remove: published-with-gradle-metadata -->
Это указывает Gradle использовать файл метаданных вместо файла pom.
Если вы откроете файл метаданных, вы можете видеть, что он действительно имеет зависимость от несуществующего модуля:
"dependencies": [
...
{
"group": "io.github.iltotore",
"module": "core",
"version": {
"requires": "1.0-fixed"
}
}
]
Поскольку core
не существует ни в одной версии, я предполагаю, что это ошибка. Возможно, вы настраиваете файл pom, но не делаете этого для метаданных модуля.
Есть несколько способов исправить это (все следующие фрагменты предназначены для Groovy DSL).
А. Опубликовать новую версию без метаданных модуля
Таким образом, вы полагаетесь исключительно на файл pom. Вы можете сделать это примерно так:
tasks.withType(GenerateModuleMetadata) {
enabled = false
}
См. Понимание метаданных модуля Gradle в Gradle. гид пользователя.
B. Отключите метаданные модуля в репозитории в проекте-потребителе.
Обратите внимание, что это действует для всех модулей, а не только для сломанного:
repositories {
mavenCentral {
metadataSources {
mavenPom()
artifact()
ignoreGradleMetadataRedirection()
}
}
}
См. раздел Объявление репозиториев в руководстве пользователя Gradle.
C. Исправьте метаданные на стороне-потребителе для этой конкретной зависимости.
Что-то типа:
dependencies {
dependencies {
components {
// Fix wrong dependency in client_2.13
withModule("io.github.iltotore:ec-client_2.13") {
allVariants {
withDependencies {
removeAll { it.group == "io.github.iltotore" && it.name == "core" }
}
}
}
}
}
implementation 'io.github.iltotore:ec-client_2.13:1.0-fixed'
}
См. раздел Исправление метаданных с помощью правил метаданных компонентов в руководстве пользователя Gradle.
person
Bjørn Vester
schedule
19.06.2020