除了工件google-photos-library-client之外,还需要哪些maven依赖项

时间:2019-03-22 22:08:44

标签: java maven google-photos

我正在尝试使用新的Google Photos API进行某些操作,但是在确定要包括哪些Maven依赖项时遇到了问题。因此,我尝试编写了最简单的Google Photos API程序:

Main.java:

package com.foo.eg.gphotos_plain;

import com.google.photos.library.v1.PhotosLibrarySettings;

public class Main {
    public static void main(String[] args) {
        PhotosLibrarySettings.Builder builder = PhotosLibrarySettings.newBuilder();
    }
}

但出现编译错误:

错误:(7,78)java:无法访问com.google.api.gax.rpc.ClientSettings   找不到com.google.api.gax.rpc.ClientSettings的类文件

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.foo.eg</groupId>
    <artifactId>gphotos-plain</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>com.google.photos.library</groupId>
            <artifactId>google-photos-library-client</artifactId>
            <version>1.1.0</version>
        </dependency>
    </dependencies>
</project>

https://developers.google.com/photos/library/guides/get-started-java处的文档仅记录了一种依赖项:<artifactId>google-photos-library-client</artifactId>

因此,我查看了 google-photos-library-client 传递依赖项,它包括至少八个具有工件名称的名称,例如gax-grpc,grpc-protobuf,...(请参阅: https://search.maven.org/artifact/com.google.photos.library/google-photos-library-client/1.1.0/jar)但所有这些传递依赖项都具有<scope>runtime</scope>,因此不在我的编译类路径中,因此不在编译错误的原因。

所以我的问题是:

1)为什么这些传递依赖项不是<scope>compile</scope>,因为如果它们是行家,则会将它们引入我的编译类路径中?为什么要将所有这些运行时依赖项都复制到我的pom.xml中,仅将它们更改为<scope>compile</scope>

2)您将添加到pom.xml哪些依赖项以使此简单的单行程序工作?

1 个答案:

答案 0 :(得分:0)

更新:

Google Photos开发人员小组已经确认,此Stack Overflow帖子中记录的问题确实是maven配置问题。

此问题已被其(Google Photos Library API)问题跟踪器报告并接受,可以在以下位置进行跟踪:

https://issuetracker.google.com/issues/129261445#comment2

总而言之,为maven工件google-photos-library-client版本1.1.0定义maven依赖项的方式存在问题,它们的目标是在Java客户端库的下一版本中进行修复。