Не удалось найти io.micronaut.platform:micronaut-platform-3.9.0 после миграции с версии 3.4.2 на 4.4.2

Вопрос или проблема

После обновления версии Micronaut с 3.4.2 до 4.4.2 у меня возникла следующая проблема при попытке перезагрузить Gradle: Не удалось найти io.micronaut.platform:micronaut-platform:3.9.0.

Модуль io.micronaut.platform:micronaut-platform не входил в старый build.gradle и не входит в новый, поэтому я не понимаю, почему Gradle пытается его найти?

Вот старый gradle:

gradle.properties:

micronautVersion=3.4.2

build.gradle:

plugins {
    id("com.github.johnrengelman.shadow") version "7.1.2"
    id("io.micronaut.application") version "3.3.2"
    id "com.gorylenko.gradle-git-properties" version "2.3.2"
}

dependencies {
    annotationProcessor("io.micronaut:micronaut-http-validation")
    annotationProcessor("io.micronaut.openapi:micronaut-openapi")
    annotationProcessor("io.micronaut.data:micronaut-data-hibernate-jpa")
    annotationProcessor("io.micronaut.data:micronaut-data-processor")
    implementation("io.swagger.core.v3:swagger-annotations")
    implementation("io.micronaut.flyway:micronaut-flyway")
    implementation("io.micronaut:micronaut-http-client")
    implementation("io.micronaut:micronaut-jackson-databind")
    implementation("io.micronaut:micronaut-runtime")
    implementation("io.micronaut.data:micronaut-data-hibernate-jpa")
    implementation("io.micronaut.sql:micronaut-hibernate-jpa")
    implementation("io.micronaut.sql:micronaut-jdbc-hikari")
    implementation("jakarta.annotation:jakarta.annotation-api")
    implementation('jakarta.persistence:jakarta.persistence-api:3.1.0')
    implementation("io.micronaut:micronaut-validation")
    runtimeOnly("ch.qos.logback:logback-classic")
    runtimeOnly("org.postgresql:postgresql")
    compileOnly("org.graalvm.nativeimage:svm")
    testRuntimeOnly("com.h2database:h2:2.2.224")
    implementation("com.google.code.findbugs:jsr305:3.0.2")

    // тест!
    testImplementation('org.mockito:mockito-core:5.12.0')
    testImplementation('org.mockito:mockito-inline:5.2.0')
    testImplementation('org.mockftpserver:MockFtpServer:3.1.0')
    testImplementation('org.junit.jupiter:junit-jupiter-api:5.11.0')

    // связывание данных
    implementation('org.json:json:20231013')

    // mapstruct
    annotationProcessor('org.mapstruct:mapstruct-processor:1.5.5.Final')
    implementation("org.mapstruct:mapstruct:1.5.5.Final")
    implementation('org.mapstruct:mapstruct-jdk8:1.5.5.Final')
    implementation('org.mapstruct:mapstruct-processor:1.5.5.Final')

    // метрики
    implementation("io.micronaut.micrometer:micronaut-micrometer-core")
    // micrometer-registry-statsd также подтягивает micrometer-core, поэтому включен выше для подробного примера
    implementation("io.micronaut.micrometer:micronaut-micrometer-registry-statsd")
    // Также необходимо для включения конечной точки
    implementation("io.micronaut:micronaut-management")
}

Вот новый gradle:

gradle.properties:

micronautVersion=4.4.2

build.gradle:

plugins {
    id("com.github.johnrengelman.shadow") version "8.1.1"
    id("io.micronaut.application") version "4.4.2"
    id("io.micronaut.aot") version "4.4.2"
    id 'io.micronaut.library' version '4.4.2'
}

dependencies {
    annotationProcessor("io.micronaut:micronaut-http-validation")
    annotationProcessor("io.micronaut.serde:micronaut-serde-processor")
    compileOnly("io.micronaut:micronaut-http-client")
    runtimeOnly("ch.qos.logback:logback-classic")
    testImplementation("io.micronaut:micronaut-http-client")
    annotationProcessor("io.micronaut:micronaut-http-validation")
    annotationProcessor("io.micronaut.openapi:micronaut-openapi")
    annotationProcessor("io.micronaut.data:micronaut-data-hibernate-jpa")
    annotationProcessor("io.micronaut.data:micronaut-data-processor")
    implementation("io.swagger.core.v3:swagger-annotations:2.2.22")
    implementation("io.micronaut.flyway:micronaut-flyway:7.4.0")
    implementation("io.micronaut:micronaut-http-client")
    implementation("io.micronaut:micronaut-jackson-databind")
    implementation("io.micronaut.data:micronaut-data-hibernate-jpa:4.9.3")
    implementation("io.micronaut.sql:micronaut-hibernate-jpa")
    implementation("io.micronaut.sql:micronaut-jdbc-hikari:5.8.2")
    implementation("jakarta.annotation:jakarta.annotation-api")
    implementation('jakarta.persistence:jakarta.persistence-api:3.1.0')
    annotationProcessor("io.micronaut.validation:micronaut-validation-processor")
    implementation("io.micronaut.validation:micronaut-validation")
    implementation("io.micronaut:micronaut-inject")
    runtimeOnly("ch.qos.logback:logback-classic:1.5.8")
    runtimeOnly("org.postgresql:postgresql:42.7.4")
    testRuntimeOnly("com.h2database:h2:2.2.224")
    implementation("com.google.code.findbugs:jsr305:3.0.2")

    // тест
    testImplementation('org.mockito:mockito-core:5.12.0')
    testImplementation('org.mockito:mockito-inline:5.2.0')
    testImplementation('org.mockftpserver:MockFtpServer:3.1.0')
    testImplementation('org.junit.jupiter:junit-jupiter-api:5.11.0')
    testImplementation("io.micronaut.test:micronaut-test-junit5")
    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")

    // связывание данных
    implementation('org.json:json:20231013')

    // mapstruct
    annotationProcessor('org.mapstruct:mapstruct-processor:1.5.5.Final')
    implementation("org.mapstruct:mapstruct:1.5.5.Final")
    implementation('org.mapstruct:mapstruct-jdk8:1.5.5.Final')
    implementation('org.mapstruct:mapstruct-processor:1.5.5.Final')

    // метрики
    implementation("io.micronaut.micrometer:micronaut-micrometer-core:5.8.0")
    // micrometer-registry-statsd также подтягивает micrometer-core, поэтому включен выше для подробного примера
    implementation("io.micronaut.micrometer:micronaut-micrometer-registry-statsd:5.8.0")
    // Также необходимо для включения конечной точки
    implementation("io.micronaut:micronaut-management:4.6.5")
}

Из документации по миграции Micronaut до версии 4 (https://micronaut.io/2023/05/09/upgrade-to-micronaut-framework-4-0-0/), я понимаю, что нет необходимости импортировать этот модуль, но даже его импорт не решает проблему:

implementation("io.micronaut.platform:micronaut-platform:4.4.2")

Я также пробовал обновить Java (с 17 до 21) и Gradle (с 7.X до 8.X) без успеха.

Заранее спасибо за вашу помощь,

Ответ или решение

Проблема, с которой вы столкнулись, связана с миграцией проекта Micronaut с версии 3.4.2 на 4.4.2. Судя по вашему описанию, Gradle пытается найти зависимость io.micronaut.platform:micronaut-platform:3.9.0, хотя ни в одном из ваших build.gradle файлов эта зависимость не указана.

Причины проблемы

  1. Глобальные зависимости: Убедитесь, что в других частях вашего проекта или в настройках Gradle не указываются глобальные зависимости, которые могут прикрывать требования к этой версии.

  2. Кеширование Gradle: Иногда после обновления версии могут возникать проблемы из-за кешированной информации. Попробуйте выполнить команду:

    ./gradlew clean build --refresh-dependencies

    Это очистит кеш Gradle и загрузит все зависимости заново.

  3. Совместимость зависимостей: Некоторые зависимости, указанные в вашем build.gradle, могут требовать более старую версию Micronaut. Проверьте совместимость всех используемых библиотек с новой версией Micronaut 4.4.2. Возможные конфликты могут возникать, из-за несовместимости версий.

Решения

  1. Удалите неявные зависимости: Если у вас есть зависимости, которые, как вы знаете, не использовались в предыдущей версии (например, micronaut-platform:3.9.0), попробуйте явно исключить их. Например, если micronaut-http-client включает в себя не нужную зависимость:

    implementation("io.micronaut:micronaut-http-client") {
       exclude group: 'io.micronaut.platform', module: 'micronaut-platform'
    }
  2. Добавьте правильную зависимость: Если вам все равно нужна зависимость micronaut-platform, убедитесь, что вы добавляете именно ту, которая соответствует вашей версии, например:

    implementation("io.micronaut.platform:micronaut-platform:4.4.2")

    Но, как вы упомянули, это не решает проблему, поэтому следите за возможностью добавления или исключения других зависимостей.

  3. Проверка конфигураций: Убедитесь, что у вас нет старых Gradle файлов или конфигураций, которые могут конфликтовать с новыми настройками (файлы, такие как settings.gradle, могут содержать дополнительные конфигурации).

  4. Обновление Java: Если вы подняли уровень Java с 17 до 21, убедитесь, что все зависимости совместимы с этой версией Java. Некоторые старые библиотеки могут не поддерживать новые версии Java.

Заключение

Обязательно проверяйте совместимость всех зависимостей и обновляйте их по мере необходимости. Если проблема продолжается, рекомендуется создать минимальный пример проекта с упрощенной конфигурацией и постепенно добавлять зависимости, чтобы выявить конфликт. Вы также можете обратиться к сообществу Micronaut или создать issue в репозитории GitHub, если проблема остается нерешенной.

Надеюсь, приведенные советы помогут вам решить вашу проблему.

Оцените материал
Добавить комментарий

Капча загружается...