問題タブ [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.

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

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 秒で失敗しました

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

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 )

理想的には、ソリューションは次のようになりますが、機能するものは何でも問題ありません