Module-info — модуль не найден: com.fasterxml.jackson.core

Я пытаюсь создать файл информации о модуле для своего приложения, но при попытке собрать приложение возникают некоторые проблемы с модулем com.fasterxml.jackson.core:

...\src\main\java\module-info.java:5: error: module not found: com.fasterxml.jackson.core
    requires com.fasterxml.jackson.core;

информация о модуле:

module foo {
    requires org.slf4j;
    requires org.apache.commons.lang3;
    requires com.fasterxml.jackson.annotation;
    requires com.fasterxml.jackson.core;
    requires com.fasterxml.jackson.databind;
}

построить.градле:

...
dependencies {
    implementation 'org.slf4j:jcl-over-slf4j:2.0.7'

    implementation 'com.fasterxml.jackson.core:jackson-annotations:2.15.1'
    implementation 'com.fasterxml.jackson.core:jackson-core:2.15.1'
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.1'

    implementation 'com.google.guava:guava:31.1-jre'

    // Logging
    implementation 'org.slf4j:slf4j-api:2.0.7'
    implementation 'org.apache.commons:commons-lang3:3.12.0'
    implementation 'commons-codec:commons-codec:1.15'

    // http tools
    api 'org.yamj:api-common:2.1'

    // testing
    testImplementation 'junit:junit:4.13.2'
    testImplementation 'org.mockito:mockito-core:5.3.1'
}

tasks.withType(JavaCompile).configureEach {
    options.encoding = 'UTF-8'
}

java {
    withJavadocJar()
    withSourcesJar()
}
...

Я использую JDK 17 (Amazon Corretto) и Gradle 8.1.1.

Кто-нибудь знает, почему это происходит и как это исправить? Я пробовал разные версии зависимостей Джексона и все равно получаю ту же проблему.

если я удалю

requires com.fasterxml.jackson.core;
requires com.fasterxml.jackson.databind;

из module-info.java он попытается построить, но получит ошибки о видимости:

...\src\main\java\foo\app.java:4: error: package com.fasterxml.jackson.databind is not visible
import com.fasterxml.jackson.databind.DeserializationFeature;
                            ^
  (package com.fasterxml.jackson.databind is declared in module com.fasterxml.jackson.databind, but module foo does not read it)

Я скачал jackson-core 2.15.1 с здесь и сделал jar -d -f jackson-core-2.15.1.jar --release 17. Результат был довольно странным; несмотря на имя файла, файл .jar содержит модуль с совершенно другим именем для всех выпусков, кроме 9. Я не знаю, облажалась ли команда Джексона, или это было какое-то преднамеренное изменение имени, эффективное для более поздних версий. .

VGR 18.05.2023 04:01

Похоже, что кто-то сломал файл .jar, добавив ветки с несколькими выпусками с неверной информацией о модулях для 11, 17 и 19. Файл .jar 2.15.0 jackson-core по-прежнему верен, поэтому у вас есть один вариант: перейти на 2.15.0.

VGR 19.05.2023 20:00

@VGR это сработало, спасибо! Есть ли способ сообщить об этой ошибке разработчикам jackson?

Conor Egan 19.05.2023 21:46

Я мало что знаю о github, но… вы можете сообщить об этом по адресу github.com/FasterXML/jackson/discussions, хотя вам, вероятно, потребуется создать учетную запись github, если вы еще этого не сделали. Имеется. Я не вижу отдельного раздела «Проблемы» для этого проекта.

VGR 19.05.2023 21:57

Выполнил поиск, и об этом уже сообщалось как о проблеме, и она будет исправлена ​​в версии 2.15.2. github.com/FasterXML/jackson-core/issues/1027

Conor Egan 19.05.2023 22:41

Не стесняйтесь ответить на свой вопрос с вашей находкой.

VGR 19.05.2023 23:09
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
6
328
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В 2.15.1 был Дополнительный модуль-info.class. Это будет исправлено в следующем выпуске: 2.15.2. Спасибо @VGR за указание на то, что использование версии 2.15.0 решит эту проблему, пока не будет выпущена следующая версия.

Как избавиться от волос за 3 простых шага...

Gili 31.05.2023 00:24

Другие вопросы по теме