0

拡張子が付いたファイルをGroovyファイルとしてコンパイルする必要があることをgradleに伝えようとしている*.dslので、包含パターンを含むソースセットを追加し、コンパイルタスクのincludesプロパティを変更しました。

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()));

オーバーライドすることは可能ですか?

4

1 に答える 1

0

Gradleのバグのようですhttp://issues.gradle.org/browse/GRADLE-2372

于 2012-07-06T00:15:11.523 に答える