15

比較的小さなプロジェクトをAntからGradleに変換しています。ビルドスクリプトの行数を約75%削減できると期待しています。

Antビルドが行うことの1つは、ソースZIP(つまり、特定のビットが削除されたプロジェクト全体のZIP-./build、さまざまなEclipseフォルダーなど)を生成することです。これをGradleに移行する際に、「包括的」を使用することにしました。後で偶然に物事が含まれないようにするための「排他的な」アプローチではなく、「アプローチ」。

ディレクトリを明示的にリストすることなく、すべてのソースセットのソースコードとリソースを取得できるようにしたいのですが、機能させることができません。

これが私がこれまでに持っているものです(実行さえしません!):

task srcZip(type: Zip) {
    classifier = 'src'
    from projectDir
    include {
        sourceSets.collect {
            it.allSource.asPath
        }
    }
}

ZIPファイルは、「src / main / java / ...」、「src / main / resources / ...」、「src / test / java / ...」などのフォルダで終わるはずですが、私はすべきではありません。後でソースセットを追加するときに、このタスクに再度アクセスする必要はありません。

前もって感謝します!

4

4 に答える 4

22

すべてのソースを 1 つの zip ファイルにまとめるには、次のようにします。

task srcZip(type: Zip) {
    classifier = 'src'
    from sourceSets*.allSource
}

ただし、要求したディレクトリ構造は得られません。すべてのソース セットのファイルが同じ階層に配置されます。

あなたが求めたものを得るには、これを使うことができます:

task srcZip2(type: Zip) {
    classifier = 'src'
    from projectDir
    include 'src/**/*'
}

もちろん、ソース ディレクトリの場所に加えた変更は考慮されていません。

于 2011-01-28T21:07:50.687 に答える
8

それで、21か月後、これを機能させるために私がしたことは次のとおりです(Gradle 1.2を使用)

task srcZip(type: Zip) {
    classifier = 'src'
    from projectDir
    include sourceSets*.allSource.srcDirs*.collect { relativePath(it) }.flatten()
    include 'LICENCE', 'README', 'NOTICE', 'gradlew*'
}
assemble.dependsOn(srcZip)

私のGroovy-fuは強くないので、真ん中のひどい部分は単純化できると確信していますが、今のところうまくいきます!

于 2012-09-20T08:16:46.267 に答える