Kotlin으로fatjar(shadowjar)を作る(kts版)
なおGradleはkts등이 됩니다.
参考
fatjar 依存 とは ライブラリ ライブラリ も 含め た た jar ファイル ファイル です.. 通常 通常 の の の の を し た た 場合 場合 に 生成 さ れる れる れる れる ファイル ファイル は 依存 依存 ライブラリ ライブラリ は は 含ま れ て い い なく 、 その を を する 際 に に は は 依存 ライブラリ 指定 指定 し て あげる あげる 必要 必要 必要 必要 必要 必要 実行 実行 実行 を を を を を を をあります.
fatjar(을)를 생성할 수 있습니다.
なお、ここまでfatjarと書いていますが、実際に作成に使用するのはshadowjar입니다.
手順
新しいバージョンが常に出ているはずなので、最新のバージョンはこちらで確認しましょう
https://imperceptiblethoughts.com/shadow/getting-started/
build.gradle.kts
plugins {
kotlin("jvm") version "1.6.20" // ここはもともと書いてあるはず
id("com.github.johnrengelman.shadow") version "7.1.2"
id("java")
}
// jarファイルを実行時に実行されるメインファイルのクラスを指定する。
val jar by tasks.getting(Jar::class) {
manifest {
// mainメソッドが存在するファイルのパスに、末尾にKtを付与したものです。
attributes["Main-Class"] = "packagename.XxxxxXxxxxKt"
}
}
こうすることで、
gradle shadowJar
で
build/libs/xxxxxxxxx-1.0-SNAPSHOT-all.jar
にshadowJar가 생성됩니다.このjarを以下のように実行すると
java -jar build/libs/xxxxxxxxx-1.0-SNAPSHOT-all.jar
정식 한정된
packagename.XxxxxXxxxxKt
의 메인 메소드가 판매됩니다.もしほかのmain메소드を実行したい場合は
java -cp build/libs/xxxxxxxxx-1.0-SNAPSHOT-all.jar packagename.YyyyyyYyyyyyKt
のように実行する ことができます.この場合、
build.gradle.kts
の jar manifest
の記載は不要になります.(その代わり java -jar
では実行できない)以上です.shadowJarを使うだけであれば、pluginに2行追加するだけで良いので非常に楽です.ただ、依存の衝突などが発生した場合は大変ですがその際はMergeStrategyを記述する必要があります.
Reference
이 문제에 관하여(Kotlin으로fatjar(shadowjar)を作る(kts版)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kabuakantech/kotlindefatjarshadowjarwozuo-ruktsban--5bfm텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)