我正在尝试使用gcp云资源管理器v1和v2的功能。v1具有在pom import for v2中找不到的项目的功能,v2具有在pom import for v1中找不到的文件夹的功能。导入两者只会导致冲突。我只能使用v1创建一个项目,或者使用v2创建一个文件夹。
我的用例要求我利用这两种功能,为gcp java库创建项目和文件夹的正确方法是什么?
com.google.api.services.cloudresourcemanager.model.project->适用于cloudresourcemanager的v1,而不是v2导入
/*(crm is an instance of CloudResourceManager)*/ crm.projects().create(project);
com.google.api.services.cloudresourcemanager.model.folder->在v2中工作,而不是在cloudresourcemanager的v1导入中工作
/*(crm is an instance of CloudResourceManager)*/
crm.folders().create(folder);
是否有一个不同的pom导入我应该使用的组合功能?
https://developers.google.com/apis-explorer/#p/cloudresourcemanager/v1/https://developers.google.com/apis explorer/#p/cloudresourcemanager/v2/
我想我忽略了一种方法论,即在使用gcp文件夹和java项目的sdk时,如何在java中创建gcp文件夹和项目。以下是有罪的pom进口(一个评论了目前)
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-cloudresourcemanager</artifactId>
<version>v2-rev20201111-1.30.10</version>
</dependency>
<!--V1 has different libraries then V2-->
<!--https://search.maven.org/artifact/com.google.apis/google-api-services-cloudresourcemanager/v1-rev20201111-1.30.10/jar-->
<!-- <dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-cloudresourcemanager</artifactId>
<version>v1-rev20201111-1.30.10</version>
</dependency>-->
1条答案
按热度按时间gcuhipw91#
正如我在评论中解释的那样,这是不可能的。客户端库将自动生成(基于发现api)。而且,由于apiv2没有为项目重用v1定义/规范,而且不可能使用同一api的两个依赖项,因此不能在同一个项目中同时使用这两个依赖项。
解决方案是直接使用api。下面是一个调用createprojectapi的示例
您只需要googleauth客户端库;包括在客户端库中。
例如,使用资源管理器v2进行文件夹管理(比项目管理更复杂),并使用我的代码示例创建项目。不需要新的导入,资源管理器v2已经包含了googleauth客户端库!