I am using Gradle 1.6 which comes with Groovy 1.8.6 and here comes the problem, I want to execute groovy script which need Groovy 2+, but Gradle is running this script with his own groovy (1.8.6) and my custom task is failing.
gradle is a Groovy script. Thus it can execute arbitrary code and access any Java library, build-specific Gradle DSL and the Gradle API.
The Groovy plugin extends the Java plugin to add support for Groovy projects. It can deal with Groovy code, mixed Groovy and Java code, and even pure Java code (although we don't necessarily recommend to use it for the latter).
You can create src/main/groovy, put your script called 'myscript.groovy' in there:
println "hello world from groovy version ${GroovySystem.version}"
Then, have a build.gradle file in your project root directory:
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 }
Then, you can execute your script (with output)
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With