그루비 스크립트, Grab 및 Ivy 구성
게시: 14 August 2019
티켓의 주제는 Gradle 빌드 스크립트의 구성이다.
Groovy 스크립트를 참조하지 않고 사용하고 싶어요.
내가 첨부한 Gradle 프로젝트에서
나는 Gradle 외부에서 이 Groovy 스크립트를 실행할 수 있기를 원한다.
외부 의존성 검색을 위한 Ivy 어노테이션이 없이
성능 또는 컴파일 문제를 일으키지 않는다
Gradle 빌드 스크립트의.
구성을 설명하기 위해 두 개의 스크립트를 사용합니다:
Gradle 빌드 스크립트와 Groovy 스크립트.
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
그러면 나는 내 Groovy 스크립트를 수동으로 실행할 수 있다,
그리고 Gradle 컴파일은 @Grab에 의해 방해받지 않습니다.
Groovy 스크립트의 종속성은 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[스택오버플로우]
관련 기사
HyperFrames-Gradle : AsciiDoc을 MP4 비디오로 변환
31 May 2026
31 May 2026
아키텍처 « 독립 플러그인 + 소비자 루트 » : 왜 내 Gradle 빌드가 중복되는가
14 May 2026
14 May 2026