問題タブ [maven-shade-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Maven で jar をシェーディングできない (INVOKESPECIAL/STATIC)
完全なエラー メッセージ:
プロジェクトで目標 org.apache.maven.plugins:maven-shade-plugin:2.3:shade (デフォルト) を実行できませんでした --: シェーディング jar の作成中にエラーが発生しました: インターフェイスの INVOKESPECIAL/STATIC には ASM 5 が必要です -> [ヘルプ 1]
シェーディングしようとしている jarfile は、sonatype nexus を使用して、自分のリモート リポジトリにあります。これが私のpom構成です:
エラーを探し回ってもほとんど結果が得られませんでした。収集した情報の主な部分は、Java 8 の静的インターフェイス メソッドがこれを引き起こす可能性があるというものでしたが、それ以上のものは見つかりませんでした。シェーディングしようとしている jarfile には実際にこれらの静的メソッドの 1 つがありますが、それでも確実にそれらを使用して jar をシェーディングできる必要がありますか? 「ASM 5」(アセンブリ?)が必要なエラーの意味がわからないので、どんな指示でもいただければ幸いです。
私の効果的なポン ( mvn help:effective-pom
):
完全なMavenスタックトレース:
java - Maven シェード コピー WEB-INF
maven-shade-pluginを使用して、次のようにプロジェクト ファイル構造を作成しようとしています。
問題は、次の pom 構成が WEB-INF ディレクトリを作成していないことです。
基本的に、web.xml ファイル、クラス、および lib ファイルを、プロジェクトのルートにある WEB-INF というディレクトリにコピーする必要があります。
更新:申し訳ありませんが、間違ったプラグインを pom から元の質問にコピーしました!
更新: pom 宣言からパッケージを追加すると<packaging>war</packaging>
、OQ に従って WEB-INF ファイル構造が完成します。ただし、この宣言では、com
ディレクトリにパッケージが含まれていないため、メイン クラスが見つかりません。
でどのように見えるか<packaging>war</packaging>
:
どのように見えるか:
scala - Scala と sbt から Maven の shade プラグインを使用する
いくつかの依存関係のいくつかの癖のために、私は に問題がありsbt-assembly
、Java で作業している人々が Maven のシェード プラグインで良い結果を出していると言われました。
Scala / sbt に Maven の shade プラグインを使用するにはどうすればよいですか?
maven - 既存の uber jar で mvn shade を実行する
既に生成されている uber jar があります (Maven 経由ではなく、jar を持っているだけです)。依存関係の競合がある別の jar と一緒に使用する必要があります。公開する必要があるいくつかのクラスを除いて、最初の uber jar のすべてのライブラリをシェーディングしたいと思います。
既存の jar を取得し、Maven シェード プラグインを使用してそのクラスのほとんど (ホワイトリストを除く) の名前を変更し、新しい uber jar を生成するためのセットアップは何ですか?
java - maven-shade-plugin には、uber jar 内の他のモジュールの依存関係が含まれていません
私の問題の概要: マルチモジュール プロジェクトでは、モジュールの 1 つが別のモジュールに依存しています。を使用してこのモジュールの uber jar をビルドするとmaven-shade-plugin
、すべての依存関係が正しく含まれますが、他のモジュールの依存関係は含まれません。
次のアーキテクチャのマルチモジュール プロジェクトがあります。
module_2
module_1
pom.xml で宣言されている への依存関係があります。
の uber jar を作成したいのですが、次の宣言でmodule_2
を使用します。maven-shade-plugin
これにより、uber jar が生成されます。
- のすべての依存関係を含む
module_2
- の瓶を含む
module_1
- の依存関係を含まない
module_1
すべての依存関係も含めるように指定する方法はありますmodule_1
か?
私が見つけた解決策は、 を使用しmaven-shade-plugin
て uber jar も作成するmodule_1
ことです。この jar は の uber jar に含まれているため、module_2
機能します。module_1
しかし、依存関係を含まない単純な jar ファイルをリリースできるようにするために、この解決策は避けたいと思います。
そして、 (最終的なjarに含まれるファイルをより適切に制御するために)maven-shade-plugin
ではなくを使用したいmaven-assembly-plugin
@ user2321368 による詳細のリクエストに続いて
Maven バージョン: Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100)
module_1 の pom.xml にその依存関係を含めます: (スコープとバージョンは、依存関係管理セクションの親 pom で宣言されます)
maven - ライブラリをコンパイル、実行、テストに含め、アセンブリ/パッケージングには含めないようにmavenで依存関係スコープを定義する方法は?
ローカルでのデバッグとクラスターへのデプロイの両方が可能な Apache Spark アプリケーションを構築しています。これを行うには、spark-core (Java/scala ライブラリ) への依存関係を定義して、次の要件を満たす必要があります。
コンパイルに含まれる (コンパイルが失敗する) 実行とテストに含まれる (ローカル デバッグと単体テスト用) アセンブリに含まれない (提供されたスパーク コアを使用してクラスターにデプロイする場合、これにより jar サイズが 70M 減少します。 maven-assembly を使用して解決できないいくつかの jar の問題があるため、包括的な jar を生成するための maven-shade プラグイン)
残念ながら、カスタム スコープは maven でネイティブにサポートされていないようです。いくつかのプラグインを使用して有効にする方法はありますか?
hadoop - maven-shade-plugin と maven-assembly-plugin の比較
spring-data-hadoop を使用して Hadoop MR ジョブを作成し、maven-shade-plugin を使用して必要なすべての jar をパックしました。しかし、コマンドライン:hadoop jar からジョブを実行すると、Spring-Bean の ClassNotFound の例外が発生しました。Spring アプリケーション コンテキストの読み込みで発生する問題。その後、maven-assembly-plugin を使用し、必要なすべての jar を lib フォルダーにパックしました。今回はうまくいきました。
なぜmaven-shade-pluginで失敗したのか理解できません。誰かが私の観察を理解するのを手伝ってくれますか?
maven - maven-shade-plugin を使用しますが、依存関係クラスは最終的な jar にありません
私のプロジェクトの pom.xml には、次の依存関係があります。
com.my.library:MyLib
上記の依存関係のクラスを含むプロジェクトの最終ビルド jar を作成したいので、次のようにmaven-shade-pluginを使用しました。
次に、 を実行するmvn clean install
と、プロジェクトが正常にビルドされました。
しかし、ディレクトリの下のMyProject.jartarget/
の内容を確認すると、依存関係からのクラスが含まれていませんcom.my.library:MyLib
。なぜですか? maven-shade-plugin のどこが間違っていますか?