<p>sbt-assemblyは、.inLibraryを介して構成されたすべてのjarをシェーディングしていないようです。</p>

作成日 2017年02月09日  ·  6コメント  ·  ソース: sbt/sbt-assembly

https://github.com/easel/shading-reproで簡単な再現プロジェクトをまとめました

基本的な要点は、.inAllを使用すると、シェイプレス*が適切にシェーディングされますが、.inProject.inLibrary()を使用しようとすると、シェーディングされません。 明らかに間違っている可能性はありますが、運が悪かったので、さまざまな組み合わせや注文などを試したので、この時点でどのように混乱しているのでしょうか。

どんな洞察もありがたいです!

bug

最も参考になるコメント

さて、テストが失敗するまで、これを追跡しました。 根本的な問題は、ライブラリマッチングコードにscalaライブラリの_2.11サフィックスが含まれていないことです。 これは、jarファイルからmoduleIdを取得しようとするためです。これには、明らかに_2.11サフィックスが含まれていません。

とにかく、回避策があります。「com.chuusai」%%「shapeless」の代わりに「com.chuusai」%「shapeless_2.11」を使用してください。

全てのコメント6件

さて、テストが失敗するまで、これを追跡しました。 根本的な問題は、ライブラリマッチングコードにscalaライブラリの_2.11サフィックスが含まれていないことです。 これは、jarファイルからmoduleIdを取得しようとするためです。これには、明らかに_2.11サフィックスが含まれていません。

とにかく、回避策があります。「com.chuusai」%%「shapeless」の代わりに「com.chuusai」%「shapeless_2.11」を使用してください。

探偵の仕事をありがとう。

役立つ場合は、シェーディングテストに変更をプッシュして失敗させることができます。 モジュールIDのルックアップと比較を調整するのに最適な場所を追跡しようとしましたが、結局、たくさんの盲目の路地を下り、回避策= pを支持してそれをあきらめました。

私は実際に修正を加えて、どこにあるかについてのいくつかの指針を私に与えることができればそれをプッシュするのにかなり良い立場にあります。

jarには接尾辞があると思います。 これは、「com.chuusai」を介して構成されたModuleIDです。%%「shapeless」%「version」には、除外substituteCrossが必要です

@ easel - https: //stackoverflow.com/questions/49675666/why-wont-sbt-assembly-shade-json4s-using-inlibraryに質問した後、あなたの投稿を見ました %と接尾辞_2.11を使用して機能するのは興味深いことです。 私はそれを機能させることさえできません。

私はこれをたくさん必要としていました。 Elastic4s-awsでaws-java-sdk-coreをシェーディングするための_2.11サフィックスを使用しても機能しないため、.inAllでシェーディングする必要があります

このページは役に立ちましたか?
0 / 5 - 0 評価