私のプロジェクトに新しいタスクを作成して、自分のプロジェクトのクラスファイルと(シェードジャー、またはファットジャーとも呼ばれます)。Gradle: 'clone'元のjarタスク依存関係を含むjarの新しいタスクを作成する
のGradleの料理によって提案された解決策は、JavaPluginの標準のjarタスクを変更します。
jar {
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}
しかし、私はそれがあるとして、元のjar taksを維持したいとshaeded JARの追加のタスクを持っているでしょう、正確ジャータスクのように振る舞うが、
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
に応じて追加のファイルが含まれており、別の分類器(「影」)を持つタスク、すなわち。
私はこのような性質をコピーすることにより、ジャータスクの設定を引き継ぐことを試みた:
task shadedJar(type: Jar, dependsOn: configurations.compile) {
dependencies = tasks.jar.taskDependencies
source = tasks.jar.source
manifest = tasks.jar.manifest
includes = tasks.jar.includes
classifier = 'shaded'
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}
しかし、結果のタスクは「瓶」の依存関係を引き継ぐず、結果としてjarファイルが含まれていません。プロジェクトのクラスファイル。さらに、このアプローチは、既存のタスクを新しいタスクのテンプレートとして使用することをお勧めします。
具体的なニーズ(別々のshadedJarタスク)と、タスクを一般的な追加タスクのテンプレートとして使用するための「クローニング」タスクには、どのような推奨アプローチがありますか?
(私はGradleの1.3上で、現在はまだですが、現在のGradleのバージョンのためのソリューションも歓迎)