Groovyスクリプト、grabおよびivyの設定
公開日: 14 August 2019
チケットの件名はGradleビルドスクリプトの設定です。
Groovyスクリプトを参照せずに使用できるようにしたい
Gradleプロジェクトに私が添付したもの
Gradleの外でこのGroovyスクリプトを実行できるようにしたい
Ivy の外部依存関係取得のためのアノテーションがないまま
性能またはコンパイルの問題を引き起こしに来ない
Gradleビルドスクリプトの。
構成を示すために、私は2つのスクリプトに依存しています:
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ファイル、今、どのように調和させるかを見てみましょう。
2つの依存関係管理ツール、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[stackoverflow]
関連記事
HyperFrames-Gradle : AsciiDocをMP4動画に変換
31 May 2026
31 May 2026
プラグイン独立+コンシューマー ルート アーキテクチャ:なぜ私のGradleビルドが重複するのか
14 May 2026
14 May 2026