Я пытаюсь создать файл информации о модуле для своего приложения, но при попытке собрать приложение возникают некоторые проблемы с модулем 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)
Похоже, что кто-то сломал файл .jar, добавив ветки с несколькими выпусками с неверной информацией о модулях для 11, 17 и 19. Файл .jar 2.15.0 jackson-core по-прежнему верен, поэтому у вас есть один вариант: перейти на 2.15.0.
@VGR это сработало, спасибо! Есть ли способ сообщить об этой ошибке разработчикам jackson?
Я мало что знаю о github, но… вы можете сообщить об этом по адресу github.com/FasterXML/jackson/discussions, хотя вам, вероятно, потребуется создать учетную запись github, если вы еще этого не сделали. Имеется. Я не вижу отдельного раздела «Проблемы» для этого проекта.
Выполнил поиск, и об этом уже сообщалось как о проблеме, и она будет исправлена в версии 2.15.2. github.com/FasterXML/jackson-core/issues/1027
Не стесняйтесь ответить на свой вопрос с вашей находкой.




В 2.15.1 был Дополнительный модуль-info.class. Это будет исправлено в следующем выпуске: 2.15.2. Спасибо @VGR за указание на то, что использование версии 2.15.0 решит эту проблему, пока не будет выпущена следующая версия.
Как избавиться от волос за 3 простых шага...
Я скачал jackson-core 2.15.1 с здесь и сделал
jar -d -f jackson-core-2.15.1.jar --release 17. Результат был довольно странным; несмотря на имя файла, файл .jar содержит модуль с совершенно другим именем для всех выпусков, кроме 9. Я не знаю, облажалась ли команда Джексона, или это было какое-то преднамеренное изменение имени, эффективное для более поздних версий. .