問題タブ [uberjar]

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.

0 投票する
1 に答える
1140 参照

gradle - 競合する依存関係を持つ Gradle シャドウ jar

サービス用の uber jar を作成するというアイデアで遊んでいますが、競合する依存関係を持つ jar を含めることについて心配しています。jar A が slf4j-1.0 に依存し、jar B が slf4j-2.0 に依存し、1.0 と 2.0 の間に大きな変更があった場合はどうなりますか? これらの jar が両方とも uber jar に含まれる場合、名前空間ごとに特定のフィルターを作成する必要がありますか、または jar を名前空間化するシャドウ プロセス中に何かが発生しますか?

助けてくれてありがとう

0 投票する
1 に答える
496 参照

maven - 既存の uber jar で mvn shade を実行する

既に生成されている uber jar があります (Maven 経由ではなく、jar を持っているだけです)。依存関係の競合がある別の jar と一緒に使用する必要があります。公開する必要があるいくつかのクラスを除いて、最初の uber jar のすべてのライブラリをシェーディングしたいと思います。

既存の jar を取得し、Maven シェード プラグインを使用してそのクラスのほとんど (ホワイトリストを除く) の名前を変更し、新しい uber jar を生成するためのセットアップは何ですか?

0 投票する
0 に答える
1479 参照

java - maven-shade-plugin には、uber jar 内の他のモジュールの依存関係が含まれていません

私の問題の概要: マルチモジュール プロジェクトでは、モジュールの 1 つが別のモジュールに依存しています。を使用してこのモジュールの uber jar をビルドするとmaven-shade-plugin、すべての依存関係が正しく含まれますが、他のモジュールの依存関係は含まれません。


次のアーキテクチャのマルチモジュール プロジェクトがあります。

module_2module_1pom.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 で宣言されます)

0 投票する
1 に答える
1233 参照

javafx - USBからのJavaアプリケーションの実行

クロス プラットフォーム (vista、xp、mac、Linux) を構築しようとしています。アプリケーションを FAT-32 でフォーマットされた USB ドライブに入れる必要があり、どの OS コンピューターでも実行できるはずです。Java/JavaFx を使用してそれを行う予定です。

複数のプラットフォームで実行する方法についてのアドバイス。

こんにちは、上記の要件に対する uber-jar の使用について誰でもアドバイスできますか。ぴったりではないでしょうか。

0 投票する
1 に答える
426 参照

java - 依存関係を含む実行可能 jar を実行しようとすると UnsatisfiedLinkError が発生する

私のJavaプロジェクトには多くの依存関係Box2dOpenGlありOpenAl
ます. 注: の下部に依存関係がリストされていますが、ここでは除外されています。pluginpom.xml
pom.xml

このドキュメントに従って開始しました: http://maven.apache.org/plugins/maven-shade-plugin/examples/executable-jar.html

を実行するmvn packageと、 ajarが作成されます。つまり、target/test-0.1.jar
実際にはすべてのjar依存関係が含まれており、パッケージのルートにネイティブ.so.dllライブラリが含まれています。

ここに画像の説明を入力

しかし、CLI からアプリケーションを実行しようとすると、UnsatisfiedLinkError例外が発生します。
で何か不足していpomますか?

0 投票する
2 に答える
2292 参照

java - tools.jar を uberjar に含める方法 (maven-shade-plugin を使用)?

pom.xml:

mvn install正常に完了します (つまり、maven はtools.jarビルド中に依存関係を認識します) が、実行時に

0 投票する
1 に答える
278 参照

clojure - Leiningen、repl、uberjar: シンボルを解決できません。そのような変数はありません

私のlein 新しいアプリプロジェクトは Light Table 内で陽気に実行されますが、lein uberjarは機能しません。奇妙なことに、これは従来の Pascal コンパイラとまったく同じように動作します。つまり、定義の前に参照を解決することはできません。別の好奇心: 昨日はうまくいきました。私は敏感なものでだまされていることに気づいていません。

Google によると、このような症状は非常にありふれたものです。私は、同じ (?) 苦境にある他の人々を助けようと試みましたが、役に立ちませんでした。ところで、彼らは通常、ソフトウェアのバグのせいにしています: 「Leiningen と Clojure の最新バージョンを入手してください」。私は 2.5.0 と 1.6 を持っています。

プロジェクト (メイン ファイル)はこちら です: https://github.com/Tyrn/pcc/blob/master/src/pcc/core.clj -main 関数をファイルの先頭に移動すると、「No such var」が-main 内の cli-optionsに発生します。名前空間の明示的な使用をいくらいじっても、違いはありません。

繰り返しますが、ライト テーブル内ではすべて正常に動作します。

0 投票する
1 に答える
574 参照

maven - 除外されたアーティファクトの依存関係をハーコーディングする Shade プラグインも

次のシェードプラグイン設定があります:

XXXX:client が maven 依存関係から除外されていることがわかりますが、生成されるその pom では、依存関係がバージョンでハードコーディングされていることがわかります

依存関係を完全に削除する方法、またはハードコードされたバージョンを削除する方法はありますか?

0 投票する
3 に答える
2898 参照

clojure - leiningen でのコンパイルから特定の clj 名前空間を除外する

を使用して正常に動作するプロジェクトがありlein runます。を使用してスタンドアロンの jar にコンパイルしたいと思いますlein uberjarsrc/projectname/ただし、私のディレクトリにはegという名前のソースファイルがいくつかあり、playground.cljemacsstats.cljとreplの実験に使用しますが、最終プロジェクト用にコンパイルしたくありません。

のようなものmakeで、コンパイルする必要があるすべてのファイルを指定します。clojure/leiningen では、すべてのファイルがデフォルトでコンパイルされるようです -どうすればファイルを除外できますか? ライニンゲンのドキュメントには何も見つかりませんでした。

私は現在使用して:aot :allいます。ここは何かを変える場所ですか?繰り返しますが、これに関する詳細なドキュメントは見つかりませんでした。

アップデート:

これまでの提案は機能していません。ただし、コンパイルしてはならない名前空間を除外するのではなく、必要なすべての名前空間を含めることでうまくいきました。例えば:

0 投票する
2 に答える
729 参照

java - Maven依存関係としてのMaven Uberjar

私は現在、プラグインを構築するプロセスで約 150 の非 Maven (アリだと思いますか?) jar ファイルに依存関係を追加する必要があるレガシーアプリを使用しています。理想的には、これらの 150 個の jar を単一の JAR にパッケージ化して Artifactory に配置し、それを Maven 依存関係として使用して、私のチームが開発環境をより簡単にセットアップできるようにしたいと考えています。

私は one-jar、maven-assembly-plugin、および maven-shade-plugin を試してきました。これは、他のいくつかの jar を含む 1 つの jar を作成するだけのようです (つまり、コンテンツを解凍します)。ただし、その jar を maven 依存関係として追加すると、maven はこれらの「サブ jar」内のコンテンツ/依存関係を解決できないように見えます。

以下のコードは、私が試したことのほんの一例です。他のアプローチを自由に提案してください。