Я создал проект 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 недоступен».
Есть идеи? Будьте добры, я не программист по профессии.
Имя модуля Gson — com.google.gson
(см. также README или Javadoc). Поэтому вы должны использовать:
requires com.google.gson;
Но, скорее всего, вам также придется открывать свои пакеты в Gson, потому что он использует отражение для доступа к полям ваших классов:
opens mypackage to com.google.gson;
(Кроме того, для последних версий Gson вам больше не нужно добавлять requires java.sql
.)
Спасибо, изменили требования на com.google.gson; работал. Я думал, что пробовал это раньше, но, похоже, я был немного нетерпелив, чтобы ошибка исчезла, требуется несколько секунд.