TLDR:
我有一个Grails 3项目。 run-app命令工作正常。然后我检查了Perforce。现在run-app失败了。
详情:
%grails clean
建立成功
%grails run-app
失败:构建因异常而失败。
无法将文件'/Volumes/Neo/singram/work/code/depot/dvdco/webapplications/nightcrawler/grails-app/i18n/messages.properties'复制到'/ Volumes / Neo / singram / work / code /段/ dvdco / web应用/夜行/建造/资源/主/ messages.properties'。
GUESS原因:
Perforce,当未检出文件进行编辑时,将使该文件不可写(chmod a-w)。我可以说,run-app调用gradle的processResources成功复制有问题的文件一次,然后似乎试图在同一个构建周期中再次复制 并因为新复制的文件不可写而失败所以它不能用自己的副本覆盖。
变通
如果我先检查整个项目进行编辑,那么run-app命令会成功。不要真的想要这样做,因为它在签到时引入了错误的机会。
问题:
有没有比我的解决方案更好的方法?为什么gradle的processResources多次复制相同的文件?是否存在某种关于processResources或run-app的钩子,我可以用它来“chmod -R u + w build”?
答案 0 :(得分:1)
有两种选择,可以选择。 1)将文件类型(如果Perforce控制)更改为+ w以使其可写;或2)更改工作区规范以包括" allwrite"使所有文件可写的选项。 -