اسکریپت Groovy، grab و تنظیمات ivy
منتشر شده در 14 August 2019
موضوع تیکت، تنظیم یک اسکریپت ساخت Gradle است.
من میخواهم بتوانم یک اسکریپت Groovy را بدون ارجاع استفاده کنم.
به پروژه Gradle که آن را ضمیمه کردم
من میخواهم بتوانم این اسکریپت Groovy را بهصورت مستقل از Gradle اجرا کنم
بدونannotations ivy برای بازیابی وابستگی خارجی
نه، اینها مشکل عملکرد یا کامپایل را ایجاد نمیکنند.
اسکریپت ساخت Gradle.
برای نشان دادن تنظیمات من از دو اسکریپت استفاده میکنم:
یک اسکریپت ساخت Gradle و یک اسکریپت Groovy.
اسکریپت Groovy در ابتدای آن در خط 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، حالا بیایید نگاه کنیم که چگونه میتوان آن را هماهنگ کرد.
هر دو مدیر وابستگی، Ivy و Gradle. توافق بین این دو در خطوط انجام میشود:
26, 30, 37, 38 et 39
بنابراین میتوانم اسکریپت Groovy خود را به صورت دستی اجرا کنم.
و کامپایل Gradle توسط @Grab مختل نمیشود.
وابستگیهای اسکریپت گرووی نیازی به ارائه در Gradle ندارند.
اما من نتوانم اسکریپت Groovy را از Gradle اجرا کنم.
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[استکاوورفلو]