java - Gradle - export property after copy task finishes -
i have build pipeline want run particular jar (with args) after copying separate folder dependency list.
currently i'm doing following:
task copytolib(type: copy, dependson: classes) { "$builddir/server" from(configurations.compile) { include "webapp-runner*" } ext.serverpath = filetree("$builddir/server/").include("webapp-runner-*.jar").getsinglefile() } task run(type: exec, dependson: [copytolib, war]) { mustrunafter copytolib executable 'java' args '-jar', copytolib.serverpath, war.archivepath, '--port', "$port" } but fails expected directory '...' contain 1 file, however, contains no files. since i'm guessing serverpath set during config phase when file has not been copied. how around this?
you falling common mistake of executing logic in configuration phase when should executing in execution phase.
try this
task copytolib(type: copy, dependson: classes) { ... dolast { ext.serverpath = ... } } if me, i'd calculate serverpath inside run rather in copytolib. perhaps use closure delay calculation.
eg:
task run(type: exec, dependson: [copytolib, war]) { def pathclosure = { filetree("$builddir/server/").include("webapp-runner-*.jar").singlefile } mustrunafter copytolib executable 'java' args '-jar', pathclosure, war.archivepath, '--port', "$port" }
Comments
Post a Comment