Biletin konusu Gradle derleme betiği yapılandırmasıdır.
Bir Groovy scriptini referans almadan kullanmak istiyorum
Gradle projesine eklediğim proje.
Bu Groovy scriptini Gradle dışında çalıştırmak istiyorum
harici bağımlılık geri kazanımı için Ivy anotasyonları olmadan
performans veya derleme sorunu oluşturmaz
Gradle build betiği.
Yapılandırmayı göstermek için iki betik kullanıyorum:
Gradle derleme betiği ve bir Groovy betiği.
Groovy betiği başlangıçta 2. satırda bulunur,
bir dış bağımlılık çekmek için bir talimat
ivy bağımlılık yöneticisi yardımıyla.

#!/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 dosyasında, şimdi nasıl uyumlu hâle getireceğimizi görelim.
iki bağımlılık yöneticisi, Ivy ve Gradle. İki taraf arasındaki anlaşma çizgilerde yapılır:
26, 30, 37, 38 et 39
Böylece Groovy betiğimi elle çalıştırabilirim,
ve Gradle derlemesi @Grab tarafından engellenmiyor.
Groovy scripti bağımlılıkları Gradle’de sağlanmamalı.
Ancak Gradle’den Groovy betiğini çalıştıramıyorum.

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
}

bilet referansı üzerindehttps://stackoverflow.com/a/18174033/837404[stackoverflow]

İlgili Makaleler