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

Reply via email to