Il compilatore Java fornisce la build incrementale, quindi javac task ant. Ma la maggior parte degli altri processi no.Come configurare la build lazy o incrementale in generale con Ant?
Considerando i processi di compilazione, trasformano alcuni set di file (origine) in un altro set di file (destinazione).
posso distinti due casi qui:
- Transformator non può prendere un sottoinsieme di file di origine, solo l'intera serie. Qui possiamo solo creare build pigro - se non è stato modificato alcun file dall'origine - saltiamo l'elaborazione.
- Trasformatore può prendere un sottoinsieme di file di origine e produrre un risultato parziale - build incrementale.
Che cosa sono le estensioni interne, le estensioni di terze parti o altri strumenti per implementare build lazy e incrementali? Potete fornire alcuni esempi di file di build diffusi?
Sono interessato a lavorare con il compilatore GWT in particolare.
Ma sicuramente potrebbe essere possibile che il codice NO che influisce sull'uscita di un modulo GWT sia cambiato, e quindi il modulo non avrebbe bisogno di ricompilare. Le modifiche che influiscono sull'output sono qualsiasi cosa inclusa nell'albero –
@Andrew No, non necessario. Perché il compilatore GWT rimuove tutto il codice non utilizzato. Quindi se inizi a utilizzare un metodo da quel modulo non sarebbe disponibile. Anche perché l'ottimizzazione in linea avviene prima che venga generato l'effettivo JavaScript. Forse sarebbe possibile memorizzare nella cache risultati intermedi, ma non sono sicuro che sarebbe efficiente, perché quei risultati devono essere interpretati di nuovo e letti/scritti su disco, invece di tenerli in memoria. –
Ma se nessuna sorgente Java (utilizzata per generare output JS) è stata modificata dall'ultima compilazione, non è necessario ricompilare nulla, ottimizzazioni e inlining e rimozione del codice inclusi ..... –