2012-07-05 22 views
0

我想告訴gradle產出,與*.dsl擴展名的文件被編譯爲常規文件,所以我添加了一個包含模式設置一個信號源,並改變了編譯任務包括屬性:添加源文件擴展名gradle這個

sourceSets { 
    ... 
    dsl_scripts { 
     groovy { 
     include '**/*.dsl' 
     } 
    } 
} 

compileDsl_scriptsGroovy.includes = ['**/*.dsl'] 

但是,當我下調試模式下運行構建它跳過所有*.dsl文件以下消息:

Skipping task ':compileDsl_scriptsGroovy' as it has no source files 

下面一行成功輸出所有我試圖編譯文件:

println sourceSets.dsl_scripts.allSource.matching({include '**/*.dsl'}).getFiles() 

我該怎麼做?

編輯: 我發現gradle這個源下面的代碼片段:

FileCollection groovyJavaOnly = spec.getSource().filter(new Spec<File>() { 
    public boolean isSatisfiedBy(File element) { 
     return element.getName().endsWith(".groovy") || element.getName().endsWith(".java"); 
    } 
}); 

spec.setSource(new SimpleFileCollection(groovyJavaOnly.getFiles())); 

是否有可能重寫?

回答