Reputation: 91
I am Trying to upload JSON data to gcs. As I did not use google cloud previously I started with uploading random String to gcs but I got stuck at the beginning itself while creating a Storage service object
Maven dependency
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-storage</artifactId>
<version>1.70.0</version>
</dependency>
import com.google.cloud.storage.*;
Storage storage = StorageOptions.getDefaultInstance().getService();
BlobId blobId = BlobId.of("bucket_name", "test_upload/test.txt");
BlobInfo blobInfo = BlobInfo.newBuilder(blobId).setContentType("text/plain").build();
Blob blob = storage.create(blobInfo, "Hello, Cloud Storage!".getBytes(UTF_8));
System.out.println(blob);
Compile Time Error:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project gcshelper: Compilation failure: Compilation failure:
ERROR] /Users/v3/gcshelper/src/main/java/com/tv/gcs/GcsTest.java:[16,41] cannot access com.google.cloud.ServiceOptions [ERROR] class file for com.google.cloud.ServiceOptions not found [ERROR] /Users/v3/gcshelper/src/main/java/com/tv/gcs/GcsTest.java:[19,28] cannot access com.google.cloud.Service [ERROR] class file for com.google.cloud.Service not found [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging.
Upvotes: 3
Views: 7344
Reputation: 465
If someone is using module-info.java
then you need to have these two dependencies:
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-core</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-firestore</artifactId>
<version>3.0.21</version>
</dependency>
and in your module-info.java
do something like:
open module ModuleName {
...
requires google.cloud.core;
requires google.cloud.firestore;
requires com.google.auth;
requires com.google.auth.oauth2;
...
}
if you are using intellij, then it will ask you to do google.cloud.firestore
and com.google.auth.oauth2
but this won't work as these depend on google.cloud.core
and com.google.auth
.
Upvotes: 1
Reputation: 91
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud</artifactId>
<version>0.47.0-alpha</version>
</dependency>
solved my issue
Upvotes: 4
Reputation: 520
my understanding is that you can’t upload files to the gcp container using java, and the stack trace is showing that maven failing at compilation time.
Well, You can try 2 things:
1.- Make sure that you Authentication settings are good, You can follow the steps in the link[1]. 2.- Configure you Maven installation according the gcp instructions[2].
[1]https://cloud.google.com/docs/authentication/production#auth-cloud-implicit-java [2]https://cloud.google.com/appengine/docs/standard/java/tools/maven#setting_up_maven
Upvotes: 0
Reputation: 1301
Did you try to include this dependency in your pom.xml ?
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-core</artifactId>
<version>1.70.0</version>
</dependency>
Upvotes: 0