問題タブ [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.
java - 「タスク ':shadowJar' (タイプ 'ShadowJar') の構成で問題が見つかりました。」Discord ボット jar を作成できません
Discord bot を作成し、シャドウ jar で jar をエクスポートしようとしています。
実行しようとすると、このエラーが発生します:(プロパティmainClassNameを設定しなかったと表示されますが、設定しました)
FAILURE: ビルドは例外で失敗しました。
- 問題点: タスク ':shadowJar' (タイプ 'ShadowJar') の構成に問題が見つかりました。
プロパティ「mainClassName」に値が指定されていません。
試してください: --info または --debug オプションを指定して実行し、より多くのログ出力を取得してください。--scan を指定して実行すると、完全な洞察が得られます。
例外は次のとおりです: org.gradle.internal.execution.WorkValidationException: タスク ':shadowJar' (タイプ 'ShadowJar') の構成で問題が見つかりました。org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:71) で org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:78) で org.gradle. org.gradle.internal.execution.steps.legacy で internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:78) org.gradle.internal.execution.steps.LoadExecutionStateStep の org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:40) の MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:39)。gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182) at org.gradle.execution.plan.DefaultPlanExecutor$ ExecutorWorker.run(DefaultPlanExecutor.java:124) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) ) org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) で 原因: org.gradle.api.InvalidUserDataException: プロパティ 'mainClassName' に値が指定されていません。org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:71) で org.gradle.internal.execution.steps.
https://help.gradle.orgでさらにヘルプを得る
ビルドは 1 秒で失敗しました
java - タスクに基づく Gradle の条件付き依存関係
必要な jdbc ライブラリが既に含まれている実行可能な jar に個別にパッケージ化したい一般的な jdbc 関連のコードがあるため、データベースの種類ごとに個別の実行可能な jar があります。ソースは同じままですが、パッケージ化された jdbc jar は異なります。
たとえば、jdbc-app-postgres.jar には postgres jdbc jar のみが含まれ、jdbc-app-mysql.jar には mysql jdbc jar が含まれます。
gradle を使用して、タスクなどでこれを行うことは可能ですか?
カスタムのshadowJarタスクとカスタム構成で可能であるように思われますが、私が知る限り、カスタムのシャドウjarタスクは完全な依存関係を含めて正しく動作していません(例: https://github.com/ johnrengelman/shadow/issues/448 )
理想的には、ソリューションは次のようになりますが、機能するものは何でも問題ありません