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

Я создал проект maven в VScode и добавил GSON в свой pom.xml:

        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.10.1</version>
        </dependency>

Я использую Java 17 и модули в первый раз.

Я добавил «требуется gson»; в мой модуль-info.java, но он сообщает, что «gson не может быть разрешен в модуль» Зависимости Maven показывают библиотеку gson: 2.10.1, и я вижу, что она была загружена в папку .m2/respository.

Мой модуль-info.java:


module mypackage {
    // needed for JavaFX
    requires javafx.controls;
    requires javafx.fxml;
    //requires javafx.swing;
    requires transitive javafx.graphics;

    // needed for HTTP
    requires unirest.java;

    // needed for JSON
    requires gson;
    requires java.sql;

    // needed for JavaFX
    opens mypackage to javafx.fxml;

    exports mypackage;
}

Очевидно, что в классе, где я импортирую Gson, GsonBuilder и т. д., происходит сбой с сообщением «Тип com.google.gson.Gson недоступен».

Есть идеи? Будьте добры, я не программист по профессии.

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

Ответы 1

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

Имя модуля Gson — com.google.gson (см. также README или Javadoc). Поэтому вы должны использовать:

requires com.google.gson;

Но, скорее всего, вам также придется открывать свои пакеты в Gson, потому что он использует отражение для доступа к полям ваших классов:

opens mypackage to com.google.gson;

(Кроме того, для последних версий Gson вам больше не нужно добавлять requires java.sql.)

Спасибо, изменили требования на com.google.gson; работал. Я думал, что пробовал это раньше, но, похоже, я был немного нетерпелив, чтобы ошибка исчезла, требуется несколько секунд.

michaelh 01.04.2023 23:51

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