0

プロジェクトの依存関係を含む zip アーカイブを作成しようとすると、いくつかの問題が発生します。次の依存関係構造があります。

dependencies {
    compile 'org.codehaus.groovy:groovy-all:2.1.7'
    compile fileTree(dir: 'libs/', include: '*.jar') // I want this to be packed
    compile fileTree(dir: 'do_not_need_in_zip', include: '*.jar') // This must be excluded.
}

最初の 2 つの依存関係のみをアーカイブにパックしようとしています。しかし、それらをフィルタリングすることはできません。私はこのようなことをやろうとしています。

task dist(type: Zip, dependsOn ...) {
    from (project.configurations.compile.files { dep ->
    dep.name == 'groovy-all'
})
into 'lib'
}

ただし、fileTree依存関係の名前は指定されていないため、この種の依存関係をフィルター処理することはできません。

たぶん、依存関係を変数に保存する必要があるかもしれません。そうしないと。アドバイスをいただけますか?

編集: 現時点では、このように、アーカイブに追加する依存関係の配列があります。汚いですが、実用的なソリューションだと思います。

dependencies {
    distributionFiles.each{
        compile it
}   }

しかし、 @Rene の答えは私にはより明確に見えます。

4

1 に答える 1

1

1 つのアプローチは、使用している構成を分割することです。たとえば、providedCompile 構成を作成し、zip に含めたくない dep をその providedCompile 構成に割り当てます。

于 2013-10-15T09:23:35.113 に答える