Groovy script, grab और ivy configuration
Publié le 14 August 2019
टिकट का विषय Gradle बिल्ड स्क्रिप्ट की कॉन्फ़िगरेशन है।
मुझे एक ग्रूवी स्क्रिप्ट का उपयोग करने में सक्षम होना चाहिए, किसी संदर्भ की आवश्यकता के बिना।
उस Gradle परियोजना में जिसमें मैंने इसे संलग्न किया।
मैं इस ग्रूवी स्क्रिप्ट को Gradle के बाहर चलाने में सक्षम होना चाहता हूँ।
बाहरी निर्भरता पुनर्प्राप्ति के ivy एनोटेशन के बिना
वे प्रदर्शन या संकलन समस्या खड़ी नहीं करते
ग्रैडल बिल्ड स्क्रिप्ट का
कन्फ़िगरेशन को समझाने के लिए मैं दो स्क्रिप्ट पर निर्भर हूँ:
एक Gradle बिल्ड स्क्रिप्ट और एक Groovy स्क्रिप्ट.
ग्रूवी स्क्रिप्ट में लाइन 2 के प्रारम्भ में है,
बाह्य निर्भरता को खींचने का एक निर्देश
ivy निर्भरता प्रबंधक की मदद से.
#!/usr/bin/env groovy
@Grab("commons-io:commons-io:2.6")
import org.apache.commons.io.FileUtils
static String getSeparator() {
System.getProperty("file.separator")
}
String from = "${System.getProperty("user.home")}${separator}.config${separator}transmission${separator}torrents"
String to = "${System.getProperty("user.home")}${separator}Documents${separator}torrents_completed"
File fromDlDir = new File("${System.getProperty("user.home")}${separator}Téléchargements")
File fromDir = new File(from)
File toDir = new File(to)
Collection<File> torrentFiles = FileUtils.listFiles(
fromDir,
["torrent"] as String[],
false)
torrentFiles.addAll(FileUtils.listFiles(
fromDlDir,
["torrent", "torrent.added"] as String[],
false))
torrentFiles.empty ?: torrentFiles.each { it ->
FileUtils.copyFileToDirectory(it, toDir)
}
println torrentFiles.size()
build.gradle फ़ाइल में, अब देखते हैं कैसे सामंजस्य बिठाएं
दो निर्भरता प्रबंधक, Ivy और Gradle. दोनों के बीच का समझौता पंक्तियों में होता है :
26, 30, 37, 38 et 39
इस प्रकार मैं अपने ग्रूवी स्क्रिप्ट को मैन्युअली चला सकता हूँ
और Gradle संकलन @Grab द्वारा बाधित नहीं है।
ग्रोवी स्क्रिप्ट की निर्भरताओं को Gradle में प्रदान नहीं किया जाना चाहिए।
लेकिन मैं Gradle से Groovy स्क्रिप्ट नहीं चला सकता।
plugins {
id "java"
id "groovy"
}
repositories {
mavenCentral()
jcenter()
}
sourceSets {
main {
java { srcDirs = [] }
groovy { srcDirs =["src/main/java", "src/main/groovy"] }
resources {
srcDirs =["src/main/resources"]
}
}
test {
java { srcDirs = [] }
groovy { srcDirs =["src/test/java", "src/test/groovy"] }
}
}
configurations {
ivy
}
dependencies {
ivy "org.apache.ivy:ivy:$ivy_version"
implementation "org.codehaus.groovy:groovy-all:$groovy_version"
}
tasks.withType(GroovyCompile) {
groovyClasspath += configurations.ivy
}
टिकट का संदर्भ परhttps://stackoverflow.com/a/18174033/837404[स्टैकओवरफ़्लो]