0
utilに区切るために移動コピーの閉鎖は、私はいくつかのカスタム仕様に基づいて、tarファイルを作成し、このカスタムのGradleプラグインを持っている:のGradle/Groovyの:方法
tar.into("${project.name}-${project.version}"){
into('lib'){
from project.tasks.jar
from project.configurations.runtime
}
//fix line endings for *.sh and *.conf files
from("src/main/assembly"){
include '**/*.sh'
include '**/*.conf'
filter(FixCrLfFilter, eol:FixCrLfFilter.CrLf.newInstance("unix")) // change line endings to unix format
fileMode = 0744
dirMode = 0755
}
//leave rest of the assembly untouched except for the filtered files above
from("src/main/assembly"){
exclude '**/*.sh'
exclude '**/*.conf'
fileMode = 0744
dirMode = 0755
}
}
を私はSRC「(から」2を抽出したいと思います/ main/assembly ")"ブロックを別のutilクラスに入れて、別のプラグインで再利用することができます。このような何か:その後、
class AssemblyUtil {
def static CopySpec assemblyFiles = copySpec {
//fix line endings for *.sh and *.conf files
from("src/main/assembly"){
include '**/*.sh'
include '**/*.conf'
filter(FixCrLfFilter, eol:FixCrLfFilter.CrLf.newInstance("unix")) // change line endings to unix format
fileMode = 0744
dirMode = 0755
}
//leave rest of the assembly untouched except for the filtered files above
from("src/main/assembly"){
exclude '**/*.sh'
exclude '**/*.conf'
fileMode = 0744
dirMode = 0755
}
}
}
そして元のメソッドをリファクタリングすることができる:私は他のプラグインで閉鎖ブロックを再利用することができますこの方法
tar.into("${project.name}-${project.version}"){
into('lib'){
from project.tasks.jar
from project.configurations.runtime
}
with AssemblyUtil.assemblyFiles
}
。
動作しません。私は構文がわからない。これは可能ですか?誰もそれを得るのを助けることができますか?
ありがとうございます!
は、静的なしでは動作しません。 – KasperF
"問題"は私にプロジェクトインスタンスがないことです。これは単なるutilクラスです – KasperF
はい、引数として渡すことはできます。 –