grails 3 运行-app 由于 perforce VCS 设置的文件权限而失败

grails 3 run-app fails due to file permissions set by perforce VCS

TLDR:

我有一个 Grails 3 项目。 运行-app 命令运行良好。然后我将它检查到 Perforce 中。现在 运行-app 失败了。


详情:

% grails 干净

构建成功

% grails 运行-app

失败:构建失败,出现异常。


猜测原因:

Perforce,当文件未被检出进行编辑时,将使该文件不可写 (chmod a-w)。据我所知,运行-app 调用 gradle 的 processResources 成功复制了一次有问题的文件,然后似乎试图在同一构建周期中再次复制它 并失败,因为新复制的文件不可写,因此无法用其自身的副本覆盖。


解决方法

如果我首先检出整个项目进行编辑,运行-app 命令会成功。真的不想这样做,因为它在签到过程中引入了出错的机会。


问题:

有没有比我的解决方法更好的方法?为什么 gradle 的 processResources 多次复制相同的文件?是否有某种挂钩到 processResources 或 运行-app 我可以用来 "chmod -R u+w build" ?

我认为有几个选项。要么 1) 将文件类型(如果由 Perforce 控制)更改为 +w 以使其可写;或 2) 更改工作区规范以包含 "allwrite" 选项以使所有文件都可写。 –