mvn clean install
を実行してプロジェクトをビルドしたとき、私はDependency convergence error
を以下のように取得していました。解決この問題に3つのオープンソースプロジェクトによる依存性コンバージェンスエラーApache Drill、Apache Hadoop、Elastic Searchで異なるバージョンのio.nettyが使用される
Dependency convergence error for io.netty:netty:3.10.5.Final paths to dependency
are:
+-com.abc:lmn2-xyz:beta-2.2-20160906_011548
+-com.abc:lmn2-foo:beta-2.2-20160906_011548
+-org.elasticsearch:elasticsearch:2.3.3
+-io.netty:netty:3.10.5.Final
and
+-com.abc:lmn2-xyz:beta-2.2-20160906_011548
+-org.apache.hadoop:hadoop-client:2.7.1
+-org.apache.hadoop:hadoop-common:2.6.0
+-org.apache.zookeeper:zookeeper:3.4.6
+-io.netty:netty:3.7.0.Final
and
+-com.abc:lmn2-xyz:beta-2.2-20160906_011548
+-org.elasticsearch:elasticsearch:2.3.3
+-io.netty:netty:3.10.5.Final
and
+-com.abc:lmn2-xyz:beta-2.2-20160906_011548
+-org.apache.drill.exec:drill-jdbc:1.8.0
+-org.apache.drill.exec:drill-java-exec:1.8.0
+-org.apache.avro:avro-mapred:1.7.7
+-org.apache.avro:avro-ipc:1.7.7
+-io.netty:netty:3.4.0.Final
and
+-com.abc:lmn2-xyz:beta-2.2-20160906_011548
+-org.apache.drill.exec:drill-jdbc:1.8.0
+-org.apache.drill.exec:drill-java-exec:1.8.0
+-org.apache.avro:avro-mapred:1.7.7
+-org.apache.avro:avro-ipc:1.7.7
+-io.netty:netty:3.4.0.Final
[WARNING] Rule 1: org.apache.maven.plugins.enforcer.DependencyConvergence failed
with message:
Failed while enforcing releasability the error(s) are [
Dependency convergence error for io.netty:netty:3.10.5.Final paths to dependency
are:
+-com.abc:lmn2-xyz:beta-2.2-20160906_011548
+-com.abc:lmn2-foo:beta-2.2-20160906_011548
+-org.elasticsearch:elasticsearch:2.3.3
+-io.netty:netty:3.10.5.Final
and
+-com.abc:lmn2-xyz:beta-2.2-20160906_011548
+-org.apache.hadoop:hadoop-client:2.7.1
+-org.apache.hadoop:hadoop-common:2.6.0
+-org.apache.zookeeper:zookeeper:3.4.6
+-io.netty:netty:3.7.0.Final
and
+-com.abc:lmn2-xyz:beta-2.2-20160906_011548
+-org.elasticsearch:elasticsearch:2.3.3
+-io.netty:netty:3.10.5.Final
and
+-com.abc:lmn2-xyz:beta-2.2-20160906_011548
+-org.apache.drill.exec:drill-jdbc:1.8.0
+-org.apache.drill.exec:drill-java-exec:1.8.0
+-org.apache.avro:avro-mapred:1.7.7
+-org.apache.avro:avro-ipc:1.7.7
+-io.netty:netty:3.4.0.Final
and
+-com.abc:lmn2-xyz:beta-2.2-20160906_011548
+-org.apache.drill.exec:drill-jdbc:1.8.0
+-org.apache.drill.exec:drill-java-exec:1.8.0
+-org.apache.avro:avro-mapred:1.7.7
+-org.apache.avro:avro-ipc:1.7.7
+-io.netty:netty:3.4.0.Final
]
私はdependency management section
にを置きます。私は、これらのオープンソースプロジェクトの中で最新のio.netty:netty:3.10.5.Final
を使用する方が良いと考えました。その後、正常に構築されます。
しかし、別の問題が発生しました。 Apacheのドリルは、このエラーの下に私を与えて起動します。
java.lang.NoSuchMethodError: io.netty.util.UniqueName.<init>(Ljava/lang/String;)V
at io.netty.channel.ChannelOption.<init>(ChannelOption.java:136) ~[netty-transport-4.0.27.Final.jar!/:4.0.27.Final]
at io.netty.channel.ChannelOption.valueOf(ChannelOption.java:99) ~[netty-transport-4.0.27.Final.jar!/:4.0.27.Final]
at io.netty.channel.ChannelOption.<clinit>(ChannelOption.java:42) ~[netty-transport-4.0.27.Final.jar!/:4.0.27.Final]
at org.apache.drill.exec.rpc.BasicClient.<init>(BasicClient.java:76) ~[drill-rpc-1.8.0.jar!/:1.8.0]
at org.apache.drill.exec.rpc.BasicClientWithConnection.<init>(BasicClientWithConnection.java:39) ~[drill-rpc-1.8.0.jar!/:1.8.0]
at org.apache.drill.exec.rpc.user.UserClient.<init>(UserClient.java:66) ~[drill-java-exec-1.8.0.jar!/:1.8.0]
at org.apache.drill.exec.client.DrillClient.connect(DrillClient.java:254) ~[drill-java-exec-1.8.0.jar!/:1.8.0]
at org.apache.drill.jdbc.impl.DrillConnectionImpl.<init>(DrillConnectionImpl.java:145) ~[drill-jdbc-1.8.0.jar!/:1.8.0]
at org.apache.drill.jdbc.impl.DrillJdbc41Factory.newDrillConnection(DrillJdbc41Factory.java:64) ~[drill-jdbc-1.8.0.jar!/:1.8.0]
at org.apache.drill.jdbc.impl.DrillFactory.newConnection(DrillFactory.java:69) ~[drill-jdbc-1.8.0.jar!/:1.8.0]
at net.hydromatic.avatica.UnregisteredDriver.connect(UnregisteredDriver.java:126) ~[optiq-avatica-0.9-drill-r20.jar!/:na]
at org.apache.drill.jdbc.Driver.connect(Driver.java:72) ~[drill-jdbc-1.8.0.jar!/:1.8.0]
at java.sql.DriverManager.getConnection(Unknown Source) ~[na:1.8.0_77]
at java.sql.DriverManager.getConnection(Unknown Source) ~[na:1.8.0_77]
私はそれがio.netty.util.UniqueName
クラスが含まれていないことが判明jarファイルを抽出するとき。
プロジェクトでApache Drill、Apache Hadoop、Elastic検索を使用していますが、特定のバージョンのio.netty
が必要です。この場合、どうしたらいいですか?助けてください。前もって感謝します。