शीर्षक के रूप में, मैं जानना चाहता हूं कि gradle.build.kts
को एक अद्वितीय jar
बनाने के लिए सभी निर्भरताओं (कोटलिन lib शामिल) के साथ एक कार्य करने के लिए कैसे कार्य करना है।ग्रेडल कोटलिन स्क्रिप्ट के साथ वसा जार कैसे बनाएं
task("fatJar") {
}
शीर्षक के रूप में, मैं जानना चाहता हूं कि gradle.build.kts
को एक अद्वितीय jar
बनाने के लिए सभी निर्भरताओं (कोटलिन lib शामिल) के साथ एक कार्य करने के लिए कैसे कार्य करना है।ग्रेडल कोटलिन स्क्रिप्ट के साथ वसा जार कैसे बनाएं
task("fatJar") {
}
आप ShadowJar plugin इस्तेमाल कर सकते हैं एक वसा का निर्माण करने के: से
//create a single Jar with all dependencies
task fatJar(type: Jar) {
manifest {
attributes 'Implementation-Title': 'Gradle Jar File Example',
'Implementation-Version': version,
'Main-Class': 'com.mkyong.DateUtils'
}
baseName = project.name + '-all'
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
with jar
}
अन्य लेकिन मैं कोई अंदाज़ा नहीं है मुझे लगता है कि कैसे लिख सकता है kotlin में,:
मैं ग्रूवी में इस नमूने में पाया गया जार:
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
buildscript {
repositories {
mavenCentral()
gradleScriptKotlin()
}
dependencies {
classpath(kotlinModule("gradle-plugin"))
classpath("com.github.jengelman.gradle.plugins:shadow:1.2.3")
}
}
apply {
plugin("kotlin")
plugin("com.github.johnrengelman.shadow")
}
repositories {
mavenCentral()
}
val shadowJar: ShadowJar by tasks
shadowJar.apply {
manifest.attributes.apply {
put("Implementation-Title", "Gradle Jar File Example")
put("Implementation-Version" version)
put("Main-Class", "com.mkyong.DateUtils")
}
baseName = project.name + "-all"
}
बस 'छाया जार' के साथ कार्य को चलाएं।
नोट: यह मानता है कि आप GSK 0.7.0 (02/13/2017 के रूप में नवीनतम) का उपयोग कर रहे हैं।
यहां एक ऐसा संस्करण है जो प्लगइन का उपयोग नहीं करता है, ग्रोवी संस्करण की तरह।
import org.gradle.jvm.tasks.Jar
val fatJar = task("fatJar", type = Jar::class) {
baseName = "${project.name}-fat"
manifest {
attributes["Implementation-Title"] = "Gradle Jar File Example"
attributes["Implementation-Version"] = version
attributes["Main-Class"] = "com.mkyong.DateUtils"
}
from(configurations.runtime.map({ if (it.isDirectory) it else zipTree(it) }))
with(tasks["jar"] as CopySpec)
}
tasks {
"build" {
dependsOn(fatJar)
}
}
यह वास्तव में – s1m0nw1
काम करता है वह मजाक नहीं कर रहा है। इसे कहीं भी https://github.com/gradle/kotlin-dsl/tree/master/samples में जोड़ा जाना चाहिए –
काम नहीं कर, आयात com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar' पहली पंक्ति में '' ShadowJar' समाधान नहीं हुआ है .. – elect
आप मेरा उत्तर की कोशिश की है जबसे? मैंने इसका परीक्षण किया है और काम कर रहा है। मुझे लगता है कि मूल समस्या यह थी कि() को एक विस्तार वर्ग की आवश्यकता थी। – mbStavola
मैंने इसे फिर से करने की कोशिश की [http://imgur.com/qUozPd2), 'कार्यों' पर यह कहता है कि '{DELEGATE_SPECIAL_FUNCTION_MISSING] गुम हो गया है' GetValue (Build_gradle, KProperty <*>) 'प्रकार के प्रतिनिधि' विधि पर कार्य विधि! ' – elect