【发布时间】:2018-01-19 05:10:01
【问题描述】:
背景
我有一个正在开发的 JetBrains 插件。最近,我从Windows 转移到Ubuntu 系统。我正在尝试像以前一样正确设置所有内容。 注意:我对 Linux 还很陌生。
问题
当我运行以下 Gradle 脚本时,我遇到了一个明显的文件权限问题(如本问题的 error 部分所示)。 注意:每当我构建项目时,都会自动调用这个 Gradle 脚本。它在 Windows 上也能正常工作。
如果我注释掉 copy{...} 闭包,那么一切正常。 我只需要手动复制所需的文件。
tasks.create(name: "copyJar_v${project['version']}") {
group GROUP_CHROMATERIAL
def mostCurrentJarFile = "ChroMATERIAL-${project['version']}.jar"
// comment this out and there are not errors, but I need to do this copy manually
copy {
into '/' // Copy into project's root folder
from 'build/libs', {
include mostCurrentJarFile
rename mostCurrentJarFile, 'ChroMATERIAL.jar'
}
}
}
错误
FAILURE: Build failed with an exception.
* Where:
Build file
'/home/ciscorucinski/IdeaProjects/ChroMATERIAL/ChroMATERIAL/build.gradle' line: 100
* What went wrong:
A problem occurred evaluating project ':ChroMATERIAL'.
> Could not copy file '/home/ciscorucinski/IdeaProjects/ChroMATERIAL/ChroMATERIAL/build/libs/ChroMATERIAL-2.5.1.jar' to '/ChroMATERIAL.jar'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 0.139 secs
/ChroMATERIAL.jar (Permission denied)
오후 12:20:39: Task execution finished 'copyJar_v2.5.1'.
我尝试了什么
我一直在使用 UI 修改 IdeaProjects 内的插件项目文件夹的文件权限。
- 我给了每个人
Create and delete files权限,我给了Change Permissions for Enclosing Files... - 每个人都有
Read and write访问文件和Create and delete files访问文件夹的权限。 - 点击
Change - 再次运行 Gradle 脚本...同样的错误消息
想法
- Linux 似乎不允许 Gradle 修改这些文件。我可以注释掉代码,自己做所有事情,但我需要让 Gradle 有更高的控制权。不知道是怎么回事。
- 我注意到当我返回
Change Permissions for Enclosing Files...时,显示的权限不是我选择的!Others拥有对文件的Read-only访问权限和对文件夹的Access files访问权限。我不知道这是常见的 Ubuntu 行为、错误还是其他原因。- 很高兴知道如何在解决此问题时尽可能限制访问。
【问题讨论】:
标签: linux gradle permissions