Groovy سکرپٹ، grab اور Ivy کی کنفیگریشن
Publié le 14 August 2019
ٹکٹ کا موضوع گرینڈل بیلڈ سکرپٹ کی تنصیب ہے۔
میں کسی ارجاع دئے بغیر ایک Groovy اسکرپٹ استعمال کرنا چاہتا ہوں
گریڈل پروجیکٹ جس میں میں نے اسے جوڑا ہے کی طرف.
میں چاہتا ہوں کہ میں اس Groovy سکرپٹ کو Gradle کے باہر چلا سکوں
بغیر exterior dependency recovery کے ivy annotations
یہ کارکردگی یا کمپائلیشن کا مسئلہ پیدا نہیں کرتے
گریڈل بیلڈ اسکرپٹ کا
کنفیگریشن کو دکھانے کے لیے میں دو اسکرپٹس کا استعمال کرتا ہوں:
ایک گرڈل بِلڈ سکرپٹ اور ایک گروی سکرپٹ
گرووی اسکریپٹ شروع سے لائن 2 پر موجود ہے,
باہم خارجی انحصار کو کھینچنے کی ہدایت
ایوی ڈپینڈنسی مینیجر کی مدد سے .
#!/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 فائل میں، اب دیکھتے ہیں ہم اسے ہم آہنگ کرنے کا طریقہ
dependencies کے دو منیجر, Ivy اور Gradle. دونوں کے درمیان اتفاق لائنوں پر بن جاتا ہے :
26, 30, 37, 38 et 39
اس طرح میں میرا Groovy سکرپٹ دستی طور پر چلا سکتا ہوں،
گرایڈل کی کامپائلیشن @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[اسٹیک اوور فلو]