gradle - 如何防止 gradle 任务覆盖由调用 groovy 类创建文件的自定义任务创建的文件
问题描述
我想在我们清理并安装到 install/conf 目录后附加属性,所以我的想法是复制现有的 install/conf 并将其放在 temp 目录中,然后调用自定义任务,它将获取这个现有的 conf 属性和将使用新属性进行更新,但不会被覆盖。
我为此使用了一个 groovy 类,并将现有属性放入 map 并使用 ./conf 文件夹中的新属性执行 putAll。
但是当我调用这个自定义任务时存在一个问题,它只能正常工作并进行所有更改,但是当我用它调用所有其他任务时,比如 clean、copyLib 和所有其他任务,它会被覆盖。
我相信这是由于新文件夹 install/conf、install/lib 和所有这些而发生的,这两个任务不同步或类似的东西,我怎样才能使这个文件夹可用于新创建的任务。当我更改自定义任务属性的目标位置时,它也适用于所有任务。我还确保我的自定义任务仅在 clean 和其他任务之后运行,但仍然没有运气
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')
}
我无法复制实际代码,但仅与此类似
我尝试在部署中只运行单个任务并且它有效,但是当我使用从文件夹复制到安装/文件夹的任何任务时,它会覆盖更改。
解决方案
推荐阅读
- php - 将pdf文件拆分为具有相同外观的多个pdf文件
- python - OpenERP功能使整个系统变慢
- teradata - COLLECT STATS 没有得到真正的价值
- java - 更新查询成功执行,但数据未在 java 中更新
- jquery - 通过jquery中的构造函数设置类属性
- c# - 字典
.Values - 它是否分配新的内存和时间复杂度 - java - 错误:类 SupportMapFragment 中的方法 getMapAsync 不能应用于给定类型;
- c# - I'm getting extra string char when I use GetBody
() for BrokeredMessage but works perfect with GetBody () c# - android - 有没有办法在统一为android构建游戏后加载文本
- c++ - 操作员删除抛出异常与放置新