我尝试调用在调用之前更改变量的deployLocal,看起来在调用的任务中应用了DEPLOYMENT_HOST的值更改。以gradle方式实现此功能的最佳方法是什么?
project.ext{
DEPLOY_HOST = ""
LV_WEB_DEPLOY_DIR = ""
LV_CLASS_DEPLOY_DIR = ""
LVHOME_RESOURCES_DIR = ""
}
task deployDev(type: GradleBuild){
doFirst{
project.ext.DEPLOY_HOST = '\\\\DEV-WIN01/';
project.ext.LV_WEB_DEPLOY_DIR = project.ext.DEPLOY_HOST + "lv_app_deploy_dir/" + 'immunolims.ear/immunolims.war/'
project.ext.LV_CLASS_DEPLOY_DIR = project.DEPLOY_HOST + "lv_app_deploy_dir/" + 'immunolims.ear/lib/'
//project.ext.LVHOME_RESOURCES_DIR = project.DEPLOY_HOST + 'lvhome_resources_dir/immunolims'
println "Dev project.ext.DEPLOYHOST = " + project.ext.DEPLOY_HOST
println "web LV_WEB_DEPLOY_DIR Path : " + project.ext.LV_WEB_DEPLOY_DIR
tasks = ['_copyWebFiles', '_copyLibFiles','_delOldLibFiles','_copyClassFiles', '_copyLabelFiles']
}
}
task deployLocal(type: GradleBuild){
doFirst{
project.ext.DEPLOY_HOST = '\\\\localhost/';
println "Dev project.ext.DEPLOYHOST = " + project.ext.DEPLOY_HOST
project.ext.LV_WEB_DEPLOY_DIR = project.ext.DEPLOY_HOST + "lv_app_deploy_dir/" + 'immunolims.ear/immunolims.war/'
println "web LV_WEB_DEPLOY_DIR Path : " + project.ext.LV_WEB_DEPLOY_DIR
project.ext.LV_CLASS_DEPLOY_DIR = project.DEPLOY_HOST + "lv_app_deploy_dir/" + 'immunolims.ear/lib/'
project.ext.LVHOME_RESOURCES_DIR = project.DEPLOY_HOST + 'lvhome_resources_dir/immunolims'
tasks = [ '_copyLibFiles','_delOldLibFiles','_copyWebFiles','_copyClassFiles', '_copyLabelFiles']
}
}
task _copyWebFiles(type: Copy) {
from 'war'
into {project.ext.LV_WEB_DEPLOY_DIR }
}
task _copyClassFiles(type: Copy) {
from 'bin'
into {project.ext.LV_CLASS_DEPLOY_DIR }
}
task _copyLibFiles(type: Copy) {
from 'lv_server_setup_files/immunolims.ear_lib'
into {project.ext.LV_CLASS_DEPLOY_DIR }
}
task _copyLabelFiles(type: Copy) {
from 'lv_server_setup_files/lvhome70_applications_immunolims'
into {project.ext.LVHOME_RESOURCES_DIR }
}
答案 0 :(得分:0)
您在项目评估时配置project.ext.DEPLOY_HOST,因为您在任务配置中设置了它。您应该在运行任务时进行设置。您应该将其作为操作而不是配置添加到任务中。
task deployLocal(type: GradleBuild){
doFirst{
project.ext.DEPLOY_HOST = '\\\\localhost/';
println "project.DEPLOYHOST = " + project.DEPLOY_HOST
tasks = ['_copyWebFiles', '_copyClassFiles', '_copyLabelFiles']
}
doLast{
//some other action
}
}
或只是
task deployLocal(type: GradleBuild) << {
//some action as doLast
}
看这里gradle task