incremental builds in the new JDK9 modular build
erik.joelsson at oracle.com
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 oracle.com> 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 ClassLoader.java. :-(
>> $ 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.
More information about the build-dev