incremental builds in the new JDK9 modular build

Erik Joelsson erik.joelsson at
Thu Aug 21 08:19:09 UTC 2014


JDK_FILTER was supposed to work, but I see now that it doesn't. That is 
a bug and needs to be fixed.

Yes, all dependencies are recompiled as make cannot know if there was an 
api change or not. To work around that, you can do "make java.desktop" 
or "make java.base" to have the compilation halt when your module is 
done. As long as you don't need the real images. For that you would need 
to add something like "&& make jars-only images-only".

You can also try --enable-sjavac again. If you had trouble with it in 
the past, please give it another go. It is being worked actively on by 
the langtools team and I see considerable speedup using it. Note that it 
doesn't currently track dependencies between modules correctly, but 
there is a patch on review in compiler-dev to fix this.


On 2014-08-21 04:07, Wang Weijun wrote:
> On Aug 21, 2014, at 5:37, Mandy Chung <Mandy.Chung at> wrote:
>> On 8/20/2014 1:26 PM, Phil Race wrote:
>>> I understood we now build individual modules so when
>>> I touched one java source file in the desktop module I expected to see only
>>> that one module rebuilt but I see this :-
>> java.desktop and all its dependencies are recompiled.   The dependencies
>> are currently stored in modules.list file
> I don't know which file in java.desktop Phil touched, but if there is no API change, I cannot see why dependent modules need to be rebuilt.
> It's a great plain for me when I only add one System.out.println() call inside :-(
> --Max
>> $ grep desktop <top>/make/common/modules.list
>> Erik's summary of the new targets is a useful reference:
>> See also -only, -java, etc suffix to the java.desktop target that may be useful.
>> JDK_FILTER should still be working.
>> Mandy

More information about the build-dev mailing list