On 14/12/09 12:42 PM, Roshan Dawrani wrote:
So, when gradle compiles GPars groovy scripts, at some point it will do
java org.codehaus.groovy.tools.FileSystemCompiler -cp "<classpath made
of GPars specified dependecies including groovy 1.6.5+>" <GPars groovy
sources to be compiled>
Eventually, we will change Gradle to do this directly, maybe in the
Gradle 0.10 release. But in the meantime, it does this indirectly by
using the <groovyc> task. It uses the <groovyc> task from the version of
Groovy specified in the dependencies, so in your case it should be using
the <groovyc> task from Groovy 1.6.5
That is where I want to insert my debug settings
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=7777
Do you think it can be done in some way - with the groovy that gradle
internally uses as of now?
Thanks,
Roshan
On Mon, Dec 14, 2009 at 6:50 AM, Roshan Dawrani
<[email protected] <mailto:[email protected]>> 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"?
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