grails 3运行应用程序由于performce VCS设置的文件权限而失败



TLDR:

我有一个Grails 3项目。运行应用程序命令运行正常。然后我把它查到Perforce。现在运行应用程序失败。


详细信息:

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

%grails清洁

建立成功的

%grails运行应用

失败:生成失败,出现异常。

  • 哪里出了问题:任务":processResources"的执行失败。

    无法将文件"/Volumes/Neo/singram/work/code/dop/dvdco/webapplications/nightcrawler/grails app/i18n/messages.properties"复制到"/Volumes/Neo/siingram/work-code/dop/webapplications/nightcrawler/build/resources/main/messages.properties"。


原因猜测:

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


全面

如果我先签出整个项目进行编辑,那么run app命令就会成功。不要真的想这样做,因为这会在签入过程中引入错误的机会。


问题:

有比我的工作更好的方法吗?为什么gradle的processResources会多次复制相同的文件?是否有某种挂钩到processResources或运行应用程序,我可以使用它来"chmod-Ru+w构建"?

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

最新更新