如何防止gradle任务覆盖由自定义任务创建的文件,该自定义任务正在调用groovy类来创建文件

问题描述

在清理并安装到install / conf目录后,我想将属性附加到其中,因此,其想法是复制现有的install / conf并将其放在temp目录中,然后调用自定义任务,该任务将接管此现有目录conf属性,并将使用新属性进行更新,但不会被覆盖。

我为此使用了一个常规类,并将现有属性放在map中,并使用./conf文件夹中的新属性进行putAll。

但是当我只调用此自定义任务时会出现一个问题,它可以正常工作并进行所有更改,但是当我使用它调用所有其他任务(如clean,copyLib等所有任务)时,它将被覆盖。

我相信这是由于新文件夹install / conf,install / lib以及所有这些事情而发生的,这两个任务不同步或类似的事情,我如何使该文件夹可用于新创建的任务。当我更改自定义任务的属性的目标位置时,它在所有任务中也能正常工作。我还确保我的自定义任务仅在清理任务和其他任务之后运行,但仍然没有运气

def copyExistingConf(){
// copies the conf from install to some temp before clean runs
}

def customTask(){
 CopyConf confObject= new CopyConf("$Project_dir/conf/abc.properties","$Project_dir/install/conf/abc.properties")
confObject.main() //I created main method which does all this putall and load
}

def copyLib(type:Copy){
from "lib" into "install/lib"
}
def clean(type:Delete){
delete "install"
}

def deploy(){
dependson =['copyLib','copyConf']
task['copyLib'].mustRunAfter('clean')
task['copyConf'].mustRunAfter('copyLib')
}

我无法复制实际代码,但仅与此类似

我尝试仅在部署中运行单个任务,但它可以正常工作,但是当我使用从文件夹复制来安装/文件夹的任何任务时,它会覆盖所做的更改。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...