Gradle + Jenkins:发布到其他用户的目录

Gradle + Jenkins: Publishing to other user's directory

我目前正在使用 Jenkins,Gradle 来构建项目。我目前正在尝试使用 uploadArchives 任务将生成的 jars 放在另一个用户的目录下。目前没有任何成功:

詹金斯输出:

[minigame-chronos] $ /var/lib/jenkins/workspace/minigame-chronos/gradlew uploadArchives
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar UP-TO-DATE
:uploadArchives FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':uploadArchives'.
> Could not publish configuration 'archives'
   > java.io.FileNotFoundException: /home/minecraft/server/plugins/minigame-chronos-0.1.jar (Permission denied)

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

build.gradle:

repositories {
    mavenCentral()
    flatDir {
        name "devServer"
        dirs "/home/minecraft/server/plugins"
    }
}

uploadArchives {
    repositories {
        add project.repositories.devServer
    }
}

到目前为止,我已经尝试过用户组和目录权限。

目录 /home/minecraft/server/plugins/ 已被授予以下文件权限

drw-rw-rw- 2 minecraft minecraft-dev    4096 Jan  4 13:14 plugins

用户 jenkins 和 minecraft 都存在于 minecraft-dev 组中。

感谢您的帮助

您缺少目录的 "execute" 权限 - 没有人可以 chdir 到它。

尝试 chmod +x /home/minecraft/server/plugins

@见https://unix.stackexchange.com/questions/21251/how-do-directory-permissions-in-linux-work