2017-09-22 12 views
0

私は、プレイフレームワーク2.5.5プロジェクトでレッズのクライアントライブラリとしてlettuceバージョン4.4を使用しようとしています。プレイ2.5.5とレタス4.4で使用されるNettyバージョンとの互換性の問題があるようです。lettuce 4.4をプレイフレームワークで使用する2.5.5

私はjava.nio.channels.UnresolvedAddressExceptionと表示されていますが、redisクライアントはローカルにインストールされたRedisサーバに接続しようとしています。私はredisサーバーが正常に動作していることを確認しました。また、独立したMavenベースのJavaプロジェクトのlettuce 4.4を使用して、redisに接続することもできます。

<dependency> 
    <groupId>io.netty</groupId> 
    <artifactId>netty-all</artifactId> 
    <version>4.0.20.Final</version> 
</dependency> 

をそして、私は日陰を使用してMavenプロジェクトで問題を解決することができる午前:次のように

問題のトラブルシューティングを行うには、私は明示的に網状の依存関係を指定することで、独立したMavenプロジェクトで問題を再現しています-jar https://github.com/lettuce-io/lettuce-core#binariesdownloadで説明したように、依存関係がバージョンの競合を避けるためにcom.lambdaworksパッケージに再配置されます。影付きのjarを使用するには、 'shaded'という値を持つレタス依存定義に 'classifier'プロパティが追加され、除外リストも指定されます。 build.sbtを使って同じことを達成するにはどうすればよいですか?

http://www.scala-sbt.org/0.13/docs/Library-Management.html#Exclude+Transitive+Dependenciesによると、私はbuild.sbtで除外を指定できますが、classifierプロパティの設定方法は不明です。除外リストだけでは、動作していないようです。

答えて

0

最後に、私は以下のようにbuild.sbtにshaded分類器とexclusionsを指定することによって、問題を解決することができる午前:

"biz.paluch.redis" % "lettuce" % "4.4.0.Final" classifier "shaded" excludeAll(
    ExclusionRule(organization = "io.reactivex", artifact="rxjava"), 
    ExclusionRule(organization = "org.latencyutils", artifact="LatencyUtils"), 
    ExclusionRule(organization = "io.netty", artifact="netty-common"), 
    ExclusionRule(organization = "io.netty", artifact="netty-transport"), 
    ExclusionRule(organization = "io.netty", artifact="netty-handler"), 
    ExclusionRule(organization = "io.netty", artifact="netty-codec"), 
    ExclusionRule(organization = "com.google.guava", artifact="guava"), 
    ExclusionRule(organization = "io.netty", artifact="netty-transport-native-epoll"), 
    ExclusionRule(organization = "io.apache.commons", artifact="commons-pool2")) 
) 
関連する問題