プロジェクトの依存関係を含む 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 の答えは私にはより明確に見えます。