2016-06-09 4 views
4

ich nur eine Quelldatei ändern und starten Sie den Build:Gradle inkrementelle Java Kompilierung führt zu vollen recompile

$ gradle jar 
Incremental java compilation is an incubating feature. 
:compileJava 
Full recompilation is required because 'XXX.java' was changed. 
Analysis took 0.241 secs. 

Meine gradle Konfiguration hat:

compileJava { 
    options.fork = true 
    options.incremental = true 
} 

Ich würde erwarten, Gradle nur XXX neu kompilieren. Java, ist es nicht, was es tun sollte?

Antwort

0

ich nicht genau wissen, wie das Feature funktioniert, aber nach dem release notes for Gradle 2.1,

Die aktuelle Implementierung ist vollständig nicht in der Lage, die Auswirkungen aller Änderungen an den Quellcode zu analysieren im Hinblick auf die Identifizierung genau welche Klassen müssen neu kompiliert werden. In solchen Situationen wird die gesamte Quelle neu kompiliert, um inkonsistente Kompilierungsergebnisse zu vermeiden. Die inkrementelle Java-Kompilierung verbessert gegenüber kommenden Gradle-Versionen, dass sie im Allgemeinen schneller sind, und ruft als Reaktion auf weniger Arten von Änderungen eine vollständige Neukompilierung auf.

Dies war mehrere Versionen vor, aber Sie haben nicht angegeben, welche Version Sie verwenden. Ich nehme an, dass es unter Umständen noch notwendig ist, mehrere Klassen neu zu kompilieren.

+0

Danke, ich benutze Gradle 2.12. Im Moment frage ich mich, ob es jemals eine vollständige Neukompilierung vermeiden kann. – bananasplit

0

Sie haben wahrscheinlich eine nicht-private Konstante in dieser Java-Datei.

Überprüfen Sie diese issue.

Verwandte Themen