目次
概要
ビルドスクリプト中のclasspathはビルドスクリプト単位で有効になるようです。
例えば、build.gradle
から、script1.gradle
というビルドスクリプトを読み込んでいる場合に、
script1.gradle
の中でGroovy
のYamlSlurper
を使いたかったような場合は、
以下のように、script1.gradle
の方で、dependencies
の定義が必要なようです。
切り出したビルドスクリプトで依存関係を定義する
build.gradle
apply from: 'script1.gradle'
script1.gradle
buildscript { repositories { mavenCentral() } dependencies { classpath 'org.apache.groovy:groovy-all:4.0.8' classpath 'org.apache.groovy:groovy-yaml:4.0.8' } } import groovy.yaml.* task foo { doFirst { println("hello") // ここでYamlSlurperが使える! def yaml = new YamlSlurper() def data = yaml.parseText(''' key1: value1 key2: value2 ''') println yaml // groovy.yaml.YamlSlurper@xxxxxxxx println(data.key1) // Output: value1 } }
実行結果
script1.gradleで定義したfooタスクを実行
$ gradle foo > Task :foo hello groovy.yaml.YamlSlurper@265c5e90 value1 BUILD SUCCESSFUL in 1s 1 actionable task: 1 executed