由于perforce VCS设置的文件权限,grails 3 run-app失败

时间:2016-05-03 21:43:35

标签: grails gradle grails-3.1

TLDR:

我有一个Grails 3项目。 run-app命令工作正常。然后我检查了Perforce。现在run-app失败了。

详情:

  • Grails版本:3.1.1
  • Groovy版本:2.4.5
  • JVM版本:1.8.0_91
  • Gradle 2.13

%grails clean

建立成功

%grails run-app

失败:构建因异常而失败。

  • 出了什么问题: 任务':processResources'的执行失败。
      

    无法将文件'/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”?

1 个答案:

答案 0 :(得分:1)

有两种选择,可以选择。 1)将文件类型(如果Perforce控制)更改为+ w以使其可写;或2)更改工作区规范以包括" allwrite"使所有文件可写的选项。 -