web-dev-qa-db-fra.com

Exécution de scripts Groovy à partir de Gradle

J'utilise Gradle 1.6 qui vient avec Groovy 1.8.6 et voici le problème, je veux exécuter un script groovy qui a besoin de Groovy 2+, mais Gradle exécute ce script avec son propre groovy (1.8.6) et ma tâche personnalisée est échouer.

37
IowA

Vous pouvez créer src/main/groovy, mettez votre script appelé 'myscript.groovy' dedans:

println "hello world from groovy version ${GroovySystem.version}"

Ensuite, ayez un fichier build.gradle dans le répertoire racine de votre projet:

apply plugin: 'groovy'

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.codehaus.groovy:groovy-all:2.0.5'
}

task runScript (dependsOn: 'classes', type: JavaExec) {
    main = 'myscript'
    classpath = sourceSets.main.runtimeClasspath
}

Ensuite, vous pouvez exécuter votre script (avec sortie)

hw@hbook:ex $ gradle runScript
:compileJava UP-TO-DATE
:compileGroovy
:processResources UP-TO-DATE
:classes
:runScript
hello world from groovy version 2.0.5

BUILD SUCCESSFUL

Total time: 6.118 secs
74
Hans Westerbeek