簡體   English   中英

Gradle 將通過 CLI 而不是 Intellij(實例方法不存在)

[英]Gradle will pass in CLI and not Intellij (Instance method doesn't exist)

我在 CI 和本地運行測試,它們通過gradle test通過。 當我通過 Intellij 運行或嘗試調試時,它們會失敗,並且我在此調用中失敗:

LogicalType type = schema.getLogicalType(); 這實際上是我們的依賴項之一中的外部 function 調用。

java.lang.NoSuchMethodError: 'org.apache.avro.LogicalType org.apache.avro.Schema.getLogicalType

我不知道如何解決這個問題,這是否與類路徑上的 jars 沖突?

Avro 上的依賴關系圖

❯ gradle dependencies | grep -i avro
|    |    |    |    +--- org.apache.avro:avro:1.7.7 -> 1.9.1
|    |    |    |    |    |    |    +--- org.apache.avro:avro:1.7.7 -> 1.9.1 (*)
|    |    |    |    |    |    +--- org.apache.avro:avro:1.7.7 -> 1.9.1 (*)
|    |    |    +--- org.apache.avro:avro:1.7.7 -> 1.9.1 (*)
|    \--- org.apache.avro:avro:1.9.1 (*)
|    +--- org.apache.avro:avro:1.9.1 (*)
|    \--- org.apache.avro:avro:1.9.0 -> 1.9.1 (*)
+--- io.confluent:kafka-avro-serializer:5.3.1
|    +--- org.apache.avro:avro:1.8.1 -> 1.9.1 (*)
|    |    +--- org.apache.avro:avro:1.8.1 -> 1.9.1 (*)
+--- io.confluent:kafka-streams-avro-serde:5.3.1
|    +--- io.confluent:kafka-avro-serializer:5.3.1 (*)
|    +--- org.apache.avro:avro:1.8.1 -> 1.9.1 (*)
     \--- org.apache.avro:avro:1.9.1 (*)
+--- io.confluent:kafka-avro-serializer:5.3.1 (n)
+--- io.confluent:kafka-streams-avro-serde:5.3.1 (n)
|    |    |    |    |    |    |    |    +--- org.apache.avro:avro:1.7.7 -> 1.9.1
|    |    |    |    |    |    |    +--- org.apache.avro:avro:1.7.7 -> 1.9.1 (*)
|    |    |    |    |    |    +--- org.apache.avro:avro:1.7.7 -> 1.9.1 (*)
|    |    |    +--- org.apache.avro:avro:1.7.7 -> 1.9.1 (*)
|    |    +--- org.apache.avro:avro:1.9.1 (*)
|    +--- io.confluent:kafka-avro-serializer:5.3.1
|    |    +--- org.apache.avro:avro:1.8.1 -> 1.9.1 (*)
|    |    |    +--- org.apache.avro:avro:1.8.1 -> 1.9.1 (*)
|    |    +--- org.apache.avro:avro:1.9.0 -> 1.9.1 (*)
|    |    |    +--- org.apache.avro:avro:1.9.0 -> 1.9.1 (*)
|    |    |         \--- org.apache.avro:avro:1.9.1 (*)
|    +--- io.confluent:kafka-streams-avro-serde:5.3.1
|    |    +--- io.confluent:kafka-avro-serializer:5.3.1 (*)
|    |    +--- org.apache.avro:avro:1.8.1 -> 1.9.1 (*)
|    +--- org.apache.avro:avro:1.9.1 (*)
|    +--- io.confluent:kafka-avro-serializer:5.3.2 -> 5.3.1 (*)
+--- io.confluent:kafka-avro-serializer:5.3.1 (*)
+--- io.confluent:kafka-streams-avro-serde:5.3.1 (*)
|    |    |    |    +--- org.apache.avro:avro:1.7.7 -> 1.9.1
|    |    |    |    |    |    |    +--- org.apache.avro:avro:1.7.7 -> 1.9.1 (*)
|    |    |    |    |    |    +--- org.apache.avro:avro:1.7.7 -> 1.9.1 (*)
|    |    |    +--- org.apache.avro:avro:1.7.7 -> 1.9.1 (*)
|    \--- org.apache.avro:avro:1.9.1 (*)
|    +--- org.apache.avro:avro:1.9.1 (*)
|    \--- org.apache.avro:avro:1.9.0 -> 1.9.1 (*)
+--- io.confluent:kafka-avro-serializer:5.3.1
|    +--- org.apache.avro:avro:1.8.1 -> 1.9.1 (*)
|    |    +--- org.apache.avro:avro:1.8.1 -> 1.9.1 (*)
+--- io.confluent:kafka-streams-avro-serde:5.3.1
|    +--- io.confluent:kafka-avro-serializer:5.3.1 (*)
|    +--- org.apache.avro:avro:1.8.1 -> 1.9.1 (*)
|    \--- org.apache.avro:avro:1.9.1 (*)
|    |    |    |    |    |    |    |    +--- org.apache.avro:avro:1.7.7 -> 1.9.1
|    |    |    |    |    |    |    +--- org.apache.avro:avro:1.7.7 -> 1.9.1 (*)
|    |    |    |    |    |    +--- org.apache.avro:avro:1.7.7 -> 1.9.1 (*)
|    |    |    +--- org.apache.avro:avro:1.7.7 -> 1.9.1 (*)
|    |    +--- org.apache.avro:avro:1.9.1 (*)
|    +--- io.confluent:kafka-avro-serializer:5.3.1
|    |    +--- org.apache.avro:avro:1.8.1 -> 1.9.1 (*)
|    |    |    +--- org.apache.avro:avro:1.8.1 -> 1.9.1 (*)
|    |    +--- org.apache.avro:avro:1.9.0 -> 1.9.1 (*)
|    |    |    +--- org.apache.avro:avro:1.9.0 -> 1.9.1 (*)
|    |    |         \--- org.apache.avro:avro:1.9.1 (*)
|    +--- io.confluent:kafka-streams-avro-serde:5.3.1
|    |    +--- io.confluent:kafka-avro-serializer:5.3.1 (*)
|    |    +--- org.apache.avro:avro:1.8.1 -> 1.9.1 (*)
|    +--- org.apache.avro:avro:1.9.1 (*)
|    +--- io.confluent:kafka-avro-serializer:5.3.2 -> 5.3.1 (*)
+--- io.confluent:kafka-avro-serializer:5.3.1 (*)
+--- io.confluent:kafka-streams-avro-serde:5.3.1 (*)

看起來您在類路徑上有兩個不同版本的 Avro。 嘗試使用 Gradle 列出依賴項(請參閱文檔) - 您可能會在那里看到問題。

編輯:

您的應用似乎間接依賴於 Avro 1.7.7、1.8.1、1.9.0 和 1.9.1。

您應該使用依賴約束來確保您只使用一個版本。

有關詳細信息,請參見此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM