What's the best way to create a gradle task, which runs a groovy script? I realize that gradle build files are groovy, so I would think it would be possible to do something like this:
task run << {
Script app = new GroovyShell().parse(new File("examples/foo.groovy"))
// or replace .parse() w/ a .evalulate()?
app.run()
}
I get all kinds of whacky errors when I try this if bar.groovy is using @Grab
annotations or even doing simple imports. I want to create a gradle task to handle this, so that I can hopefully reuse the classpath definition.
Would it be better to move the examples directory into the src directory somewhere? What's a best practice?
I think you probably need to run the script as a new process... e.g.,
I would guess that the way Gradle is executed is not via invoking
groovy
, so the setup that makes @Grab work never happens. It could also be the the version of Groovy that Gradle uses doesn't support @Grab.