1. ホーム
  2. gradle

[解決済み] Gradle を使って依存関係のある jar をビルドする

2022-04-28 11:54:36

質問

マルチプロジェクトでビルドしているのですが、サブプロジェクトの1つにファットジャーをビルドするタスクを入れました。私は次のものと同様のタスクを作成しました。 クックブックに記載されている .

jar {
  from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
  manifest { attributes 'Main-Class': 'com.benmccann.gradle.test.WebServer' }
}

実行すると、以下のようなエラーが発生します。

原因 を変更することはできません。 でないコンフィギュレーションは 未解決の状態です!

このエラーの意味がよくわからないのですが。 バグかもしれないので、Gradle JIRAにも報告しました。 .

解決方法は?

私が投稿した 解決策 をJIRAでGradleに対抗させる。

// Include dependent libraries in archive.
mainClassName = "com.company.application.Main"

jar {
  manifest { 
    attributes "Main-Class": "$mainClassName"
  }  

  from {
    configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
  }
}

なお mainClassName の前に表示されなければなりません。 jar { .