誰かが私が間違っていることを知っていれば、私はそれを感謝します。一時的なフォルダーからファイルをコピーしていないときにコピーするタスク
このようなタスクを実行するビルドファイルがあります。
タスク1(unpackWar):Tempフォルダにwarファイルを解凍し
タスク2(copyWarFilesToWebContent):一部除外
タスク3(copyRequiredJarFilesToWebContent)とのWebContentフォルダーにコピーしたファイルを:jarファイルのカップルを解凍し温度/ WEB-INF/libにからTempJarDir
タスク4のファイル(explodeProductJars):私たちが望むファイルをコピーしますTempJarDirからWebContentフォルダーに
トンのそれぞれを実行し、単一の準備作業がありますdependsOnを使用してタスクを監視し、各タスクにmustRunAfterコマンドを追加して順番に実行するようにしました。また、各タスクに対してupToDateWhen = falseを設定します。
タスク1はうまく動作し、戦争を解凍するということが起こりそうです。タスク2はTempのファイルを使用し、必要なものをWebContentに正しく追加します。
タスク3とタスク4は、指定されたディレクトリで動作するファイルが存在しないように見えるため、常に最新の状態に戻ります。
Tempフォルダが存在するときに準備を再実行すると、タスク3と4が正しく動作します。
これは、fileTreeの動作や私が間違っていることが原因であるかどうかはわかりません。私は約1週間前にgradleをピックアップして、それを把握しています。
ありがとうございました。
タスクは次のようになります。私はfileTreeを行うために、その何かを感じますが、正確に起こっていただきましたわからないました
task prepare(dependsOn: ['unpackWar', 'copyWarFilesToWebContent', 'copyRequiredJarFilesToWebContent'])
prepare.outputs.upToDateWhen {false}
task unpackWar(type: Copy) {
description = 'unzips the war'
outputs.upToDateWhen { false }
def warFile = file(warFileLocation)
from zipTree(warFile)
into "Temp"
}
task copyWarFilesToWebContent(type: Copy) {
mustRunAfter unpackWar
description = 'Moves files from Temp to WebContent Folder'
outputs.upToDateWhen { false }
from ('Temp') {
exclude "**/*.class"
}
into 'WebContent'
}
task explodeProductJars(type: Copy) {
outputs.upToDateWhen { false }
FileTree tree = fileTree(dir: 'Temp/WEB-INF/lib', includes: ['application*-SNAPSHOT-resources.jar', 'services*-SNAPSHOT-resources.jar'])
tree.each {File file ->
from zipTree(file)
into "TempJarDir"
}
}
task copyRequiredJarFilesToWebContent(type: Copy, dependsOn: explodeProductJars) {
mustRunAfter copyWarFilesToWebContent
outputs.upToDateWhen { false }
from ("TempJarDir/META-INF/resources") {
include '**/*.xml'
}
into "WebContent/WEB-INF"
}
。
あなたは '--debug'や' --info'を使ってgradleタスクを実行していると考えましたか?たぶんあなたの質問にログを含める? – frhd
私は--debug --infoと--stacktraceを実行しています。メッセージは、処理するファイルやその程度のものがないということを思い出すことができるという点で、少し謎めいています。ダビッドは、なぜそれがファイルを見ていないのかを明らかにした。私は、私がタスクを実行すると、設定フェーズは同時に各タスクを処理するので、Tempフォルダは存在しませんでしたが、タスクには最新のものとしてフラグが立てられていることを意味します。しかし、これを修正するためにオープン – Predz