2016-04-08 22 views
2

Gradle'a geçiş yapan bir gmake kullanıcısıyım. Bir alt projenin bir Java projesi ve diğeri de ev yapımı bir dil olduğu çok projeli bir yapıya sahibim. Evde demlenmiş dil, herhangi bir Gradle eklentisi kullanmaz. Şimdi, ev yapımı kaynak dosyamdan herhangi biri değiştirildikten sonra XML oluşturmak için bir Java programı çalıştıran bir görev eklemek istiyorum. Yapmak gerekirse, hedef isminin yanında inputFile.mine veya * .mine'e bağımlılık beyan ederim, ancak bu temel şeyi Gradle ile nasıl kolayca yapamayacağımı anlayamadım. Şu anda, görevi her zaman aşağıdaki çirkin çalışma ortamını kullanarak yürütmeye zorluyorum. Bunu bazı dependsOn * .mine ile değiştirmek istiyorum. Gradle kullanıcı kılavuzunun, dosyaları belirtmenin farklı yollarını açıklamaya adanmış bir bölümü vardır, ancak bağımlılığın nasıl bildirileceğini görmedim.Dosya bağımlılığı Gradle

task generateXML(type: Exec) { 
generateXML.getOutputs().upToDateWhen({false}) // Force it to execute always 
executable("java.exe") 
args("-jar", "resources/generateXml.jar", "src/inputFile.mine") 
} 

Yeni başlayanlara yardımcı olduğunuz için teşekkür ederiz.

cevap

0

Görev girişlerini ve çıktılarını Gradle'da tanımlayabilirsiniz. Örneğin

:

task generateXML(type: Exec) { 
    inputs.file ("src/inputFile.mine") 
    executable("java.exe") 
    args("-jar", "resources/generateXml.jar", "src/inputFile.mine") 
} 

fazla bilgi için https://docs.gradle.org/current/userguide/more_about_tasks.html ve https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/TaskInputs.html bakınız.

Yan not: Yapınızı -i ile çalıştırdığınızda, Gradle size güncel denetim sırasında neler olduğunu söyleyecektir.

+0

Teşekkür ederiz! Bu referanslar ve örnek tam olarak ihtiyacım olan şey. Özellikle, Bölüm 17.9. "Güncel olan görevleri atlamak" sorunu giderir. –