<target name="index-assets" depends="copy-assets">
<path id="assets.path">
<!-- contexts (and surplus) -->
<dirset id="assets.dirset" dir="assets/" defaultexcludes="yes"/>
<!-- assets -->
<fileset id="assets.fileset" dir="assets/" includes="**" excludes="asset.index" defaultexcludes="yes"/>
</path>
<pathconvert pathsep="${line.separator}" property="assets" refid="assets.path" dirsep="/">
<mapper>
<globmapper from="${basedir}/assets/*" to="*" handledirsep="yes"/>
</mapper>
</pathconvert>
<echo file="assets/asset.index">${assets}</echo>
</target>
<target name="-pre-build" depends="index-assets"/>
Tamamen temel Gradle kavramlarını kavrayamıyorsun ben hâlâ sanırım, ama burada denedim ne:
task indexAssets << {
def assets = file("assets")
def contexts = files(assets)
inputs.file(assets)
outputs.file("assets/assets-gradle.index")
def tree = fileTree(dir: 'assets', include: ['**/*'], exclude: ['**/.svn/**', 'asset.index'])
contexts.collect { relativePath(it) }.sort().each { println it }
tree.collect { relativePath(it) }.sort().each { println it }
}
- ağaç iyi, ama sadece dosya (yaprak) yollarını içeren
- sadece basit cle almak gibi olamaz Yine de dizinlerin bir listesi (bağlamlar). Diğer varyantları denedim (tree, include/exclude), ama bu dizinde tek bir dosya, dizin adı veya hiçbir şey olsun. Sadece varlıklar dizininde bulunan basit bir dizin listesi istiyorum.
Şimdilik sadece yolları yazdırmaya çalışıyorum, ancak bunları bir dosyaya (ANT'nin eko dosyası gibi) yazmanın uygun yolunu da bilmek istiyorum.
Güncelleme:
Bu harika pasajı o kısmı (+ svn filtresi) yapmak gibi görünüyor, ama yerine bu görevi yapmanın daha "Gradley" yolunu bulurdum. Önceden oluşturulmuş bir bağımlılık olarak daha sonra bir yapı varyantı bağlamında çalışır. (NOT:? Ben görev için o proje bağlamında değilim sanırım çünkü bu kesmek yolun bir parçası olarak 'Projesi' belirtmek zorunda)def list = [] def dir = new File("Project/assets") dir.eachDirMatch (~/^(?!\.svn).*/) { file -> list << file } list.each { println it.name }
Bu maalesef artık Gradle 2.x – Adam
kullanım tasks.withType (JavaCompile) ile derler sifonu ve dosyayı kapatmak unutmak değildir ? –
ile çalışması için yerine tasks.withType (Derleme) ait Gradle 2.0 –