Gradle 4.6に簡単なプロジェクトがあり、その実行可能jarを作成したいと思います。 shadow
、gradle-fatjar-plugin
、gradle-one-jar
、spring-boot-gradle-plugin
プラグインを試しましたが、どちらもimplementation
として宣言された依存関係を追加しません(compile
がありません)。 compile
で動作します。 gradle-one-jar
プラグインの場合、implementation
依存関係が必要です。
どうもありがとうございました!
次のコードを使用できます。
jar {
manifest {
attributes(
'Main-Class': 'com.package.YourClass'
)
}
from {
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
}
}
com.package.YourClass
をstatic void main( String args[] )
を含む完全修飾クラス名に置き換えてください。
これにより、ランタイムの依存関係がパックされます。詳細が必要な場合は、 docs を確認してください。
同じタスクを Gradle Kotlin DSL を使用して同様の方法で達成できます。
val jar by tasks.getting(Jar::class) {
manifest {
attributes["Main-Class"] = "com.package.YourClass"
}
from(configurations.runtime.map { if (it.isDirectory) it else zipTree(it) })
}