On 17/05/10 10:21 AM, Tim Berglund wrote:
Hello,
I'm just getting started with Gradle, and really enjoying what I'm
seeing so far. However, I've got a question. I'd like to create a
target that runs a Groovy script located inside my project. The
script imports classes from the project, so script's classpath should
include the project's classes. The project is on github here:
http://github.com/tlberglund/midpoint-mountains
As it stands, I can build, then run this from the command line to do
what I want:
groovy -cp build/classes/main/ src/main/groovy/BuildMountain
I thought it would be cool to have a "run" target that did the same
thing. What's the best way to make this happen?
To run the script in-process, you could use GroovyShell to execute the
script: http://groovy.codehaus.org/gapi/groovy/lang/GroovyShell.html
To run the script in a separate process, you could use the Exec or
JavaExec tasks to execute the script. See
http://gradle.org/latest/docs/javadoc/org/gradle/api/tasks/Exec.html or
http://gradle.org/latest/docs/javadoc/org/gradle/api/tasks/JavaExec.html
I guess it might be nice to add a GroovyExec task at some point, too.
To get the classpath, you might use sourceSets.main.runtimeClasspath,
with is of type FileCollection:
http://gradle.org/latest/docs/javadoc/org/gradle/api/file/FileCollection.html
--
Adam Murdoch
Gradle Developer
http://www.gradle.org