我已经在Windows 2012中通过MSI安装了Jenkins。默认情况下,它的默认目录具有只读权限。因为它,当我运行构建时,我正在尝试在发布文件夹下复制工件时获得Access拒绝工作空间的权限。
错误: 将文件从“D:\ foo.dll”复制到“bin \ Debug \ foo.dll”。 C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(3540,5):错误MSB3021:无法将文件“D:\ jenkins \ workspace \ foo.dll”复制到“bin \ Debug” \ foo.dll”。访问路径'bin \ Debug \ foo.dll'被拒绝。 [d:\詹金斯\工作空间\ foo.csproj]
我尝试手动更改权限。它适用于旧项目。随着新的工作,它再次改变了只读的权限。我已经用管理员权限安装了它。詹金斯作为一项服务运行。当我检查服务时,它正在运行,登录为“本地系统帐户”。
有人能告诉我如何解决Jenkins的权限问题吗? 提前谢谢!
答案 0 :(得分:0)
最佳做法是确保Windows服务作为可访问互联网的服务帐户运行(特别是nuget.org和/或maven central,以便与这两个站点进行对话以进行依赖管理)和服务帐户位于构建计算机上的管理员组中。
当我开始一个新项目时,服务帐户是我要求的第一件事,有时候,由于愚蠢的公司安全繁文缛节,这是最难获得的。
您还可以编写一个调用icacls.exe的批处理文件来递归设置权限。 This也很有用。
请注意这一点,因为随着时间的推移,JENKINS_HOME中的文件数量会随着时间的推移呈指数增长。