kann nicht gefunden werden. Beam verwendet die beiden Google-Tools auto/value und auto/service.Apache Beam: Registrar für GS
Ich möchte eine Pipeline mit Dataflow-Runner und Daten auf Google Cloud Storage gespeichert werden.
Ich habe ein Abhängigkeit hinzugefügt:
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-runners-google-cloud-dataflow-java</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.beam</groupId>
<artifactId>beam-sdks-java-extensions-google-cloud-platform-core</artifactId>
<version>2.0.0</version>
</dependency>
Ich bin in der Lage, die Pipeline von der IntelliJ zu starten. Aber wenn das Glas durch eine mvn package
kompiliert und ausgeführt mit java -jar
wirft er einen Fehler:
java.lang.IllegalStateException: Unable to find registrar for gs
Die fatjar ist Paket mit maven-assembly-plugin
. GcsFileSystemRegistrar
Klasse ist im Glas.
Danke! Du hast recht. Ich habe es gestern spät in der Nacht herausgefunden, indem ich ein Beam-Projekt vom Archetyp erstellt und die Unterschiede zwischen meiner 'pom.xml' und der neuen' pom.xml' verglichen habe. Nach dem Wechsel zu 'maven-shade-plugin' hat es gut funktioniert. –
Wenn Sie Gradle mit dem Shadow-Plugin verwenden, können Sie dies beheben, indem Sie 'mergeServiceFiles()' in der 'shadowJar {...}' -Schließung verwenden. – Cristian