2012-03-16 15 views
6

私はGradleのディレクトリを除外したいと思います。私はminusを実行すると、excludeしようとしているディレクトリも試しました。 。?Gradleで作業していないsourceSetからディレクトリを除外します

apply plugin: 'java' 

sourceSets { 
    test { 
     java { 
      srcDirs = ['src/test/unit/java'] 
     } 
    } 
} 

task outputDirs << { sourceSets.test.java.srcDirs.each{f -> println(f)}} 

このREAを:(私は最後にそれを出力する場合)

提案

apply plugin: 'java' 

sourceSets { 
    test { 
    java { 
     srcDirs 'src/test/unit/java' 
     minus 'src/test/java'    
    } 
    } 
} 

task outputDirs << { sourceSets.test.java.srcDirs.each{f -> println(f)}} 
+0

どのバージョンのGradleを使用していますか? –

答えて

8

代わりにこれを試して削除まだsrcDirs中に存在していますソースディレクトリのリスト(ここでは1つだけ)をsrcDirsプロパティに送ります。

srcDirs = 'src/test/unit/java' 

をサンプルと同じように使用すると、既存のソースフォルダが追加されます。

について、 ルネ

+0

ありがとう、それは働く..第二の質問:なぜマイナスまたは除外仕事をしなかったのですか? – vicsz

+0

さて、私はそれを説明しようとしました:java closure内のすべての呼び出し –

+0

これは理由を明確にするかもしれないいくつかの注意点です: - srcDirs 'src/test/unit/java'はgradle dsl内でSourceDirectorySet# srcDirs(Object ... srcPaths) - SourceDirectoryはFileCollection型です - FileCollectionでマイナスを呼び出すと、指定されたfileCollectionは変更されず、新しいFileCollectionが作成されて返されます。そのため、ここでは「マイナス」は効果がありません。 - 単純に話され、「マイナス」コールと同じ方法で仕事が除外されます。 - SourceDirectorySetインターフェイスには、ここでいくつかのものをクリーニングするためのいくつかのtodosがあります。このクリーンアップが1.0の一部であるかどうかは不明です –

関連する問題