Hi Saravanan,

could you just use union mounts / bind mounts under Linux, to combine all the source directories as to appear as one ?

Cheers,
mg


Am 09.06.2025 um 20:26 schrieb Saravanan Palanichamy:
Thank you Eric

I dont know if I want incremental compilation. I'll state the problem differently

  * I have a file to compile. It imports a bunch of other files and types
  * I want to start compiling this file and as the resolver is kicking
    in, I want to give the compiler additional files to add to the
    list (and recurse on any dependencies from this new list as well)

regards
Saravanan

On Mon, Jun 9, 2025 at 9:47 AM Milles, Eric (TR Technology) via dev <dev@groovy.apache.org> wrote:

    I think what you are describing is "incremental compilation".

    There are open issue items about incremental compilation:
      * https://issues.apache.org/jira/browse/GROOVY-11666
      * https://issues.apache.org/jira/browse/GROOVY-10932

    This feature is not mentioned in the docs for groovyc.
    https://groovy-lang.org/groovyc.html

    I don't think there is explicit support to provide all sources and
    a partially populated binary directory and have the compiler work
    out just what to build.  Maven might provide some of this on top
    of groovyc. Incremental is indicated as on by default since Maven
    3.1:
    
https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#useIncrementalCompilation


    ------------------------------------------------------------------------
    *From:* Saravanan Palanichamy <chava...@gmail.com>
    *Sent:* Monday, June 9, 2025 11:01 AM
    *To:* dev@groovy.apache.org <dev@groovy.apache.org>
    *Subject:* [EXT] Re: Controlled compilation
    *External Email:* Use caution with links and attachments.


    Thank you Jochen for your reply

    some followup

      * My source files may be in different locations (I want to say
        here's three different source directories, they form the
        source closure. But compile only foo.groovy and let the
        compiler decide what other files in what locations need to be
        pulled up for the compile). I saw that groovyc is backed by
        FileSystemCompiler.java and it is doing the same thing I am
        doing I think (it adds all source files passed in the command
        line args to the compile unit). What's the way to pass in only
        foo.groovy but then say here are other source units/files one
        of which is bar.groovy, just use the ones you need and leave
        out the others

    If it helps,

      * I assume every file will only have one class defined (these
        are java files that are being compiled with the Groovy
        compiler, so java limitations will help)
      * I can also do multi pass compiles, time to compile is not a
        limitation

    regards
    Saravanan

    On Mon, Jun 9, 2025 at 4:21 AM Jochen Theodorou
    <blackd...@gmx.org> wrote:

        On 09.06.25 09:21, Saravanan Palanichamy wrote:
        > Hello Groovy devs
        >
        > I am trying to understand how to do this with the Groovy
        Compiler
        >
        >   * I have say 20 files in my project
        >   * I know I have to compile just one of those files

        groovyc foo.groovy

        will compile foo.groovy and potentially its dependencies. A
        dependency
        should be compiled filed in class format, or source file. If
        both are
        available then which is newer decide if recompilation happens.
        If a
        dependency is not found compilation will fail.

        bye Jochen

Reply via email to