問題タブ [shadowjar]
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.
scala - shadowJar と Scala の依存関係を使用しているときに不足している conf ファイルを修正するにはどうすればよいですか?
私のような将来の問題を抱えているユーザーのためにこれを書いています。Typesafe 構成に基づいて構築されたライブラリは通常、独自のreference.conf
ファイルを使用し、特定の構成キーを参照します。GradleshadowJAR
プラグインを使用してファット JAR をビルドする場合、これらのファイルは含まれません。
ファット JAR を実行しようとすると、Spray や Akka などの依存関係がエラーをスローします。エラーは次のようになります。
これを修正する方法は?以下の答えを確認してください。
java - 依存関係を1つのjarに結合するgradleプロジェクトを作成するには?
いくつかの依存関係を 1 つの難読化された jar に結合する gradle プロジェクトを作成しようとしています (今のところ、難読化された部分は気にしません)。これらの依存関係は、settings.gradle で定義されている他の gradle プロジェクトです。
私のプロジェクトにはコードが直接含まれていません。
shadowJar プラグインを使用して、依存関係を含む「ファット」jar を生成しようとしています。この jar をプロジェクトのデフォルトの出力 jar にしたい (jar タスクを置き換えますか?)。
目標は、この結合されたプロジェクトを他のプロジェクトの依存関係として追加できるようにすることですcompile project(:'MyCombinedProject')
。これにより、生成されたファット jar が依存関係として追加されます。
私のbuild.gradle:
私のプロジェクト パスは で定義されていsettings.gradle
ます。
jakarta-ee - Gradle shadowJar コンパイルの依存関係
私はgradleプロジェクトを持っています。2 つのサブプロジェクト (common と application) を持つルート Gradle フォルダーがあります。
一般
- ShadowJar を介して、すべての jar 依存関係を含む JAR ファイルを出力します。
- Maven 中央リポジトリからの依存関係のみがあり、他の依存関係はありません
応用
- WARファイルを出力
- 依存関係として Common の shadowJar があります。
- Maven 中央リポジトリからの追加の依存関係があります
達成したいこと
アプリケーションでgradle warを実行するとき、すべての Maven 依存関係と Common プロジェクトの ShadowJar を含む jar を作成したいと考えています。
問題は ShadowJar 部分にあります。Application でgradle warを実行すると Common にアーティファクトがビルドされません。shadowJar をビルドして戦争に含めたいと思います。
現在のソリューション これをルートのbuild.gradleに追加しました
Application/build.gradle には、もう 1 行あります。
次に、ルートでビルド タスクを実行します。どういうわけか、共通プロジェクトが最初にビルドされ、ShadowJar がアプリケーションの WAR に含まれます。
これは最適とは言えません。固定ファイル名を指すのではなく、コンパイル プロジェクト (':common') として定義された Common へのアプリケーションの依存関係を持ちたいと思います。ただし、「プロジェクトをコンパイルする」ステートメントは、明らかに Common モジュールで shadowJar を生成せず、それを Application モジュールの WAR に含めません。
gradle - ビルド パラメータを使用して gradle ランタイムの依存関係を制御する
Gradle とその ShadowJar プラグインを使用して、アプリケーション用のファット jar を作成します。これは、2 つのコンテキストのいずれかにデプロイされます。
あるコンテキストでは、環境は依存関係 A、B、および C (およびそれらのすべての推移的な依存関係) を提供し、これらのクラスは私のファット jar の一部であってはなりません。
他のコンテキストでは、環境は依存関係 A と B のみを提供し、C とそのすべての推移的な依存関係が私のファット jar にバンドルされていることを確認する必要があります。
Gradle ビルド ファイルでこの動作を定義するにはどうすればよいですか? runtime.exclude
最善の方法は、ビルド ターゲットまたはコマンド ライン パラメーターに基づいて何らかの方法でプロパティを調整することだと思います。
gradle - .kotlin_builtins ファイルとは何ですか? uberjars からそれらを省略できますか?
Kotlin で記述されたアプリケーションの gradle ビルドに proguard を統合する作業を行っています。私は、proguard が Kotlin 標準ライブラリを削除していることに気付きました (私の単純な Hello World プログラムのように) が、ファイル拡張子が.kotlin_builtins
. これらのファイルを除外するように gradle タスクを構成しても、プログラムは正常に動作しているように見えます。これらのファイルとは何ですか? また、実行可能な uberjar と一緒に出荷する必要がありますか?
参照用のbuild.gradle
ファイルの内容は次のとおりです。