gson cannot be resolved to a module error in module-info.java

问题描述 投票:0回答:1

我已经在 VScode 中创建了一个 Maven 项目并将 GSON 添加到我的 pom.xml 中:

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

我是第一次使用 Java 17 和模块。

我添加了“需要 gson;”到我的 module-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”。

有什么想法吗?温柔一点我不是程序员。

java maven gson
1个回答
0
投票

Gson 的模块名称是

com.google.gson
(另见READMEJavadoc)。因此你应该使用:

requires com.google.gson;

但很可能你还必须向 Gson 打开你的包,因为它使用反射来访问你的类的字段:

opens mypackage to com.google.gson;

(对于最近的 Gson 版本,您不必再添加

requires java.sql
。)

© www.soinside.com 2019 - 2024. All rights reserved.