Beam正在使用Google的auto/value和auto/service工具。Apache Beam:無法找到gs的註冊商
我想使用Dataflow運行器運行管道,並將數據存儲在Google雲端存儲上。
我添加了一個依賴關係:
<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>
我能夠開始從的IntelliJ管道。但是,當罐子通過mvn package
編譯並運行java -jar
它拋出一個錯誤:
java.lang.IllegalStateException: Unable to find registrar for gs
的fatjar是包maven-assembly-plugin
。類在罐子裏。
謝謝!你是對的。我昨天晚上通過從原型創建一個Beam項目並比較了我的'pom.xml'和新的'pom.xml'之間的區別,我發現了它。切換到'maven-shade-plugin'後,它開始工作得很好。 –
如果你在Shadow插件中使用Gradle,你可以通過在shadowJar {...}閉包中使用'mergeServiceFiles()'來解決這個問題。 – Cristian