:アンドロイド+のGradle:ファイルにリストディレクトリ私はGradleのにANTビルドを持っているタスクに変換しようとしている
<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"/>
私は完全に基本的なGradleの概念を把握していない、私はまだだと思いますが、しかし、ここで私が試したものです:
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 }
}
- ツリーは結構ですが、唯一のファイル(葉)のパスが含まれてい
- 私はちょうど簡単なCLEを得るように見えることはできませんディレクトリ(コンテキスト)のリスト。私はいくつかの他の変種(ツリー、インクルード/除外)を試しましたが、そのディレクトリ内に1つのファイル、ディレクトリ名自体、または何も表示されません。私はちょうど '資産'ディレクトリにあるディレクトリの簡単なリストがほしい。
今のところ、私はパスを印刷しようとしていますが、後でANTのエコーファイルのようなファイルにこれらのファイルを書き込む正しい方法を知りたいと思います。
更新:
このグルーヴィーなスニペットはその一部(+ SVNフィルターを)やっているようだが、私はむしろ、この作業を行うためのより多くの「Gradley」方法を見つけるだろう。後でビルド前の依存関係としてビルドバリアントのコンテキストで実行されます。 (注:?私は私が仕事のために、そのプロジェクトのコンテキストではないと思うよので、このハックではパスの一部として、「プロジェクト」を指定する必要がありました)def list = [] def dir = new File("Project/assets") dir.eachDirMatch (~/^(?!\.svn).*/) { file -> list << file } list.each { println it.name }
これは、残念ながら、もはやそれはGradleの2.xの – Adam
使用tasks.withType(JavaCompile)でコンパイルしないあなたは、ファイルをフラッシュし、閉め忘れていません? –
で動作させるために代わりtasks.withType(コンパイル)のGradleの2.0 –