1

JavaScript ソースを宣言する方法として、Gradle の SourceSets の概念を使用していますが、特定の順序でソースを宣言できるようにする方法がわかりません。私が欲しいのは次のようなものです:

javascript.source {
    custom {
        js {
            srcDir "src/js"
            include "file2.js", "file1.js"
        }
    }
}

私が宣言した順序でファイルのコレクションを提供します。

FileTree を使用してこれを実行できることはわかっていますが、SourceSet の宣言でこれを機能させるには何かが欠けているように感じます。

これが不可能な場合、注文したソースには何を使用すればよいですか?

編集: JavaScript を使用しているため、順序依存が必要であることに注意してください。

4

2 に答える 2

2

sourceSet2 番目の内容を宣言しfile1.js、オリジナルsourceSetをそれに依存させることをお勧めします。大まかに:

javascript.source {
    custom2 {
        js {
            srcDir "src/js2"
            include "file2.js"
        }
    }
    custom {
        js {
            srcDir "src/js"
            include "file1.js"
        }
        compileClasspath += custom2.outputs
    }
}

ただし、使用しているプラ​​グインでこれが可能かどうかはわかりません。しかし、あなたがその考えを理解してくれることを願っています.

Gradle のような宣言型システムでは、順序を指定する唯一の方法は、異なる部分間の依存関係を宣言し、Gradle に順序を計算させることだと思います。

于 2012-07-01T12:29:57.433 に答える
0

定義上、sourceSetin gradle はソース ファイルとリソース ファイルの論理グループです。(順序は暗示されません)

たとえば、Java プラグインの場合、これは、gradle がアプリをコンパイルしようとするときに、コンパイル プロセスのソース ファイルの場所を認識していることを意味します。

あなたが何を達成しようとしているのか正確にはわかりません。ここで特別なプラグインを使用していますか?ファイルの特別な順序が必要なのはなぜですか? あなたがやろうとしていることの全体像を説明してください。ここでは役に立たないと確信してsourceSetいます。

于 2012-06-30T11:56:56.000 に答える