On 14/12/09 12:20 PM, Roshan Dawrani wrote:
Hi Adam,
Groovy's <groovyc> allows nested <compilerarg> elements (post
GROOVY-3761), but that is available since 1.6.5, but the gradle
snapshot that I am using uses 1.6.4.
My debugging sceario is this: GPARS uses gradle to compile its groovy
scripts. While gradle internally uses 1.6.4, GPars compilation is done
with 1.6.5 or say, even 1.7.0 (whatever is specified in its
dependencies).GPars had a reported a very similar and that fix is
there 1.6.5 onwards. So, it is important that the groovyc compilation
that I want to debug doesn't have 1.6.4 from gradle's own internal
classpath. I thought the forked groovyc will cleanly allow that.
Do you think that gradle's own classpath will not come into picture if
I do "gradle compileGroovy" after setting GRADLE_OPTS? Will it cleanly
have only GPars specified groovy jar (and not gradle's own) on the
classpath if I do "gradle compileGroovy"?
Yes, that's how it's supposed to work. When we invoke <groovyc>, we load
it in an isolated ClassLoader which doesn't include anything from
Gradle's classpath. Of course, it's relatively complex code, so we may
have broken something.
rgds,
Roshan
On Mon, Dec 14, 2009 at 1:23 AM, Adam Murdoch <[email protected]
<mailto:[email protected]>> wrote:
On 13/12/09 8:08 PM, Roshan Dawrani wrote:
Hi,
I need to look into one groovy issue and for that I need to
debug the groovyc process that is forked by gradle.
Could someone please let me know how to pass the compiler args
in the gradle script to do the same?
Gradle uses Groovy's <groovyc> Ant task to do the compilation, and
looking at the source of this task, it doesn't look like it offers
any way to control the command-line args it uses to fork the
groovyc process. For Gradle to do what you're asking, it would
need the Ant task to support it first. Or for Gradle to drive
Groovy's FileSystemCompiler directly (which we plan to do eventually).
Any chance you can debug this problem in non-forking mode? Then,
you can use $GRADLE_OPTS to pass the debug command-line options:
GRADLE_OPTS=-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=7777
gradle compileGroovy
I tried
compileTestGroovy.options.compilerArgs =
[[value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=7777"]]
(fails with
"org.codehaus.groovy.control.MultipleCompilationErrorsException:
startup failed, [-FXrunjdwp:transport=dt_sockeress=7777] (The
system cannot find the file specified)")
and
compileTestGroovy.options.compilerArgs =
["-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=7777"]
compilerArgs are passed directly to javac, by which time it's too
late for you to any useful debugging (I suspect).
--
Adam Murdoch
Gradle Developer
http://www.gradle.org
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email
--
Adam Murdoch
Gradle Developer
http://www.gradle.org