2010-07-09 13 views
6

Java derleyicisi, artımlı yapı sağlar, bu nedenle javac ant görevi de. Ama çoğu diğer süreçler yok.Genel olarak Ant ile tembel veya artımlı yapı nasıl yapılandırılır?

Oluşturma işlemlerini göz önünde bulundurarak, bir takım dosyaları (kaynağı) başka bir dosya kümesine (hedef) dönüştürürler.

Burada farklı iki durum olabilir:

  1. Transformatör , sadece bütün set kaynak dosyalarının bir alt kümesini alamaz. Burada sadece tembel yapısını yapabiliriz - kaynaktaki hiçbir dosya değiştirilmediyse - işlemi atlıyoruz.
  2. Transformatör , kaynak dosyalarının bir alt kümesini alabilir ve kısmi bir sonuç üretebilir - artımlı yapı.

Tembel ve artımlı yapı oluşturmak için dahili, üçüncü taraf uzantıları veya diğer araçlar nelerdir? Bazı yaygın derleme örnekleri verebilir misiniz?

Bunun özellikle GWT derleyicisi ile çalışmakla ilgileniyorum.

cevap

1

GWT ile ilgili olarak, GWT derleyici tüm kaynak kodunu bir kerede incelediği ve kodları en iyi duruma getirip kodladığı için artımlı yapılamamak mümkün değildir. Bu, değiştirilmeyen kodun farklı olarak değerlendirilebileceği anlamına gelir, örneğin, değiştirilmemiş bir sınıftan bir yöntem kullanmaya başlarsanız, yöntem önceki derleme adımındaydı, ancak şimdi derlenmelidir.

+0

Ama kesinlikle bir GWT modülünün çıkışını etkileyen YOK kod değişmiştir ve dolayısıyla modül yeniden derleme gerek olmazdı mümkün olabilir. Çıkışı etkileyen değişiklikler, –

+0

@Andrew No ağacında gerekli olan hiçbir şey değildir. Çünkü GWT derleyicisi kullanılmayan tüm kodları kaldırır. Yani bu modülden bir yöntem kullanmaya başlarsanız, mevcut olmaz. Ayrıca, inline optimizasyon gerçek JavaScript oluşturulmadan önce gerçekleştiği için. Belki de ara sonuçların önbelleğe alınması mümkün olabilir, ancak bunun verimli olup olmayacağından emin değilim, çünkü bu sonuçların tekrar yorumlanması ve bellekte tutmak yerine diske yazılması/yazılması gerekir. –

+2

Ancak, herhangi bir Java kaynağı (JS çıktısı üretmek için kullanılan) son derlemeden beri değişmişse, herhangi bir şeyi yeniden derlemenize gerek yoktur, optimizasyonlar ve satır içi kodlama dahil. –

5

uptodate görevi, Ant'in bu soruna yönelik genel çözümdür. Tembel veya artımlı derlemenin arzu edildiği çoğu durumda çalışacak kadar esnektir.

Sizinle aynı problemi yaşadım: Kodumun bir parçası olarak bir GWT modülüm var ve ihtiyacım olmadığında yeniden derlenmenin bedelini ödemek istemiyorum. benim durumumda çözüm böyle bir şey görünüyordu:

<uptodate property="gwtCompile.mymodule.notRequired" 
    targetfile="www/com.example.MyGwtModule/com.example.MyGwtModule.nocache.js"> 
    <srcfiles dir="src" includes="**"/> 
</uptodate> 

<target name="compile-mymodule-gwt" unless="gwtCompile.mymodule.notRequired"> 
    <compile-gwt-module module="com.example.MyGwtModule"/> 
</target> 
İlgili konular