8

module-info.java运行 gradle 时,找不到我声明的所有必需模块:

/Users/Joseph/eclipse-workspace/CheckMyDigitalFootprint/src/main/java/module-info.java:10: error: module not found: com.jfoenix
        requires com.jfoenix;
                    ^
/Users/Joseph/eclipse-workspace/CheckMyDigitalFootprint/src/main/java/module-info.java:11: error: module not found: google.api.client
        requires google.api.client;
                           ^
/Users/Joseph/eclipse-workspace/CheckMyDigitalFootprint/src/main/java/module-info.java:12: error: module not found: google.api.services.gmail.v1.rev83
        requires google.api.services.gmail.v1.rev83;
                                             ^
/Users/Joseph/eclipse-workspace/CheckMyDigitalFootprint/src/main/java/module-info.java:13: error: module not found: google.http.client
        requires google.http.client;
                            ^
/Users/Joseph/eclipse-workspace/CheckMyDigitalFootprint/src/main/java/module-info.java:14: error: module not found: google.http.client.jackson2
        requires google.http.client.jackson2;
                                   ^
/Users/Joseph/eclipse-workspace/CheckMyDigitalFootprint/src/main/java/module-info.java:15: error: module not found: google.oauth.client
        requires google.oauth.client;
                             ^
/Users/Joseph/eclipse-workspace/CheckMyDigitalFootprint/src/main/java/module-info.java:16: error: module not found: google.oauth.client.java6
        requires google.oauth.client.java6;
                                    ^
/Users/Joseph/eclipse-workspace/CheckMyDigitalFootprint/src/main/java/module-info.java:17: error: module not found: google.oauth.client.jetty
        requires google.oauth.client.jetty;
                                    ^
/Users/Joseph/eclipse-workspace/CheckMyDigitalFootprint/src/main/java/module-info.java:18: error: module not found: java.xml.bind
        requires java.xml.bind;
                         ^
/Users/Joseph/eclipse-workspace/CheckMyDigitalFootprint/src/main/java/module-info.java:23: error: module not found: org.json
        requires org.json;

模块信息.java:

module footprint {

    requires com.jfoenix;
    requires google.api.client;
    requires google.api.services.gmail.v1.rev83;
    requires google.http.client;
    requires google.http.client.jackson2;
    requires google.oauth.client;
    requires google.oauth.client.java6;
    requires google.oauth.client.jetty;
    requires java.xml.bind;
    requires transitive javafx.base;
    requires javafx.controls;
    requires javafx.fxml;
    requires transitive javafx.graphics;
    requires org.json;
    requires java.prefs;

    opens checkmydigitalfootprint to javafx.fxml;


    exports checkmydigitalfootprint.util;
    exports checkmydigitalfootprint;
    exports checkmydigitalfootprint.model;
    exports checkmydigitalfootprint.view;
}

文件夹结构:

在此处输入图像描述

4

2 回答 2

6

您可能需要确保将任务修改compileJava为:

compileJava {
    inputs.property("moduleName", moduleName)
    doFirst {
        options.compilerArgs = [
            '--module-path', classpath.asPath,
        ]
        classpath = files()  
    }
}
于 2018-12-10T05:46:25.183 回答
4

在最近的 Gradle 版本中(因为 6.4 表示 Internet;我在 6.5 上测试过),这可以更简洁地说明:

java {
    modularity.inferModulePath = true
}

同样,另请参阅:https ://guides.gradle.org/building-java-9-modules/

于 2020-07-18T10:56:11.060 回答