私はGradleビルドに2つのjarファイルを生成するShadowJarとProguardタスクを持っています。他のGradleタスクの出力ファイルをziptreeとして参照する方法は?
task obfuscate(type: ProguardTask) {
outjars ..
}
shadowJar {
...
}
task release(type: Jar) {
from shadowJar
from obfuscate
classifier 'all'
}
私の問題は、この場合には、リリースのjarファイルは、jarファイル自体に2つのファイルとして影ジャーと難読化されたjarファイルが含まれていることです。私はzipTreeの入力としてこれらを作りたいと思います。
私の問題は、タスク参照をそのタスクの実際の出力のzipTreeに変換する方法がわかりません。
私の試みは、from zipTree(shadowJar.outputs.getFiles())
に私を導くが、これはまだ失敗:
> Cannot convert the provided notation to a File or URI: task 'shadowJar' output files.
The following types/formats are supported:
- A String or CharSequence path, for example 'src/main/java' or '/usr/include'.
- A String or CharSequence URI, for example 'file:/usr/include'.
- A File instance.
- A URI or URL instance.
にはどうすれば適切に先行するタスクの出力jarファイルを参照することができますか? zipTree
上
ありがとう。これはより良いと思われますが、今私はget:メソッド 'zipTree()for the task':release 'の引数[foo/bar/myjar-2017.05.05-all.jar、build_5mt3ethz91ji36qb1vfayplhl $ _run_cl osure12 $ _closure31 @ 28108b8] org.gradle.api.tasks.bundling.Jarと入力します。 – jabal
だから、zipTreeはシャドウジャーの出力ファイル名を受け取るようです。 – jabal
'zipTree'メソッドが文字列とクロージャの両方を受け取っているように思えるので、ちょっと混乱します。どのような例を試しましたか? –