Google 张 Java API 找不到 client_secrets?

Google sheets Java API cannot find client_secrets?

我正在关注 tutorial,它展示了如何使用 Java 连接到 google 工作表。它使用 gradle 来获取依赖关系

apply plugin: 'java'
apply plugin: 'application'

mainClassName = 'Quickstart'
sourceCompatibility = 1.8
targetCompatibility = 1.8
version = '1.0'

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.google.api-client:google-api-client:1.22.0'
    compile 'com.google.oauth-client:google-oauth-client-jetty:1.22.0'
    compile 'com.google.apis:google-api-services-sheets:v4-rev483-1.22.0'
}

当我从 IntelliJ 中 运行 示例 QuickStart.java class 时,我可以看到周围的错误

import com.google.api.client.auth.oauth2.Credential;
import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.util.store.FileDataStoreFactory;
import com.google.api.services.sheets.v4.SheetsScopes;
import com.google.api.services.sheets.v4.model.*;
import com.google.api.services.sheets.v4.Sheets;

说找不到图书馆。在 IntelliJ 的工具栏中,我转到 File -> Project Structure -> Dependencies 并添加了 build.gradle 中的 3 个项目。之后,围绕导入的错误消失了。当我 运行 class 我得到

    objc[1649]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/bin/java (0x102cf14c0) and /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x102db94e0). One of the two will be used. Which one is undefined.
Exception in thread "main" java.lang.NullPointerException
    at java.io.Reader.<init>(Reader.java:78)
    at java.io.InputStreamReader.<init>(InputStreamReader.java:72)
    at Quickstart.authorize(Quickstart.java:67)
    at Quickstart.getSheetsService(Quickstart.java:90)
    at Quickstart.main(Quickstart.java:98)

如果我 运行 在终端中使用 gradle -q 运行,一切都会完成。不知何故

的价值
InputStream in = Quickstart.class.getResourceAsStream("/client_secret.json");

在 IntelliJ 中 运行ning 时为空,但在终端 运行ning 中不为空

编辑:这是项目树的样子

看来你只需要右键单击资源目录,并告诉 IntelliJ 将其标记为资源根目录