无法使用Jenkins的Performce插件同步源代码

无法使用Jenkins的Performce插件同步源代码,jenkins,jenkins-plugins,perforce,jenkins-cli,Jenkins,Jenkins Plugins,Perforce,Jenkins Cli,我试图使用Jenkins的perforce插件从perforce同步源代码,但失败了,以下是控制台输出: Started by user anonymous Building in workspace /home/var/.jenkins/jobs/Perforce-Test/workspace Using master perforce client: Perforce-Test [workspace] $ /usr/bin/p4 workspace -o Perforce-Test [wor

我试图使用Jenkins的perforce插件从perforce同步源代码,但失败了,以下是控制台输出:

Started by user anonymous
Building in workspace /home/var/.jenkins/jobs/Perforce-Test/workspace
Using master perforce client: Perforce-Test
[workspace] $ /usr/bin/p4 workspace -o Perforce-Test
[workspace] $ /usr/bin/p4 login -a -p
[workspace] $ /usr/bin/p4 -P 5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX9 workspace -o Perforce-Test
Changing P4 Client View from:
//depot/perf/main/solution/... //Perforce-Test/perf/main/solution/...

Changing P4 Client View to: 
  //depot/perf/main/solution/Main-Code/... //Perforce-Test/perf/main/solution/Main-Code/...
Saving modified client Perforce-Test
[workspace] $ /usr/bin/p4 -P 5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX9 -s client -i
Last build changeset: 0
[workspace] $ /usr/bin/p4 -P 5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX9 changes -s submitted -m 1 //Perforce-Test/...
Failed to get last submitted changeset in the view, falling back to change counter. Error was: No output for: /usr/bin/p4 -P 5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX9 changes -s submitted -m 1 //Perforce-Test/... 
[workspace] $ /usr/bin/p4 -P 5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX9 counter change
[workspace] $ /usr/bin/p4 -P 5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX9 -s changes -s submitted //Perforce-Test/...@3691614,@3691663
Sync'ing workspace to changelist 3691663 (forcing sync of unchanged files).
[workspace] $ /usr/bin/p4 -P 5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX9 -s sync -f //Perforce-Test/...@3691663
Caught exception communicating with perforce. Errors encountered while force syncing: error: //Perforce-Test/...@3691663 - protected namespace - access denied.
com.tek42.perforce.PerforceException: Errors encountered while force syncing: error: //Perforce-Test/...@3691663 - protected namespace - access denied.

    at com.tek42.perforce.parse.Workspaces.syncTo(Workspaces.java:167)
    at hudson.plugins.perforce.PerforceSCM.checkout(PerforceSCM.java:1126)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1270)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:609)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:531)
    at hudson.model.Run.execute(Run.java:1741)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:374)
ERROR: Unable to communicate with perforce. Errors encountered while force syncing: error: //Perforce-Test/...@3691663 - protected namespace - access denied.

Finished: FAILURE
我已经附上了我工作的截图。有人能告诉我可能有什么问题吗?这是我的用户的问题吗?当我尝试创建一个新的工作区并使用perforce视图客户端与同一个用户同步最新代码时,效果很好

错误消息:

//Perforce-Test/...@3691663 - protected namespace - access denied.
表示您对尝试同步的文件没有权限。如果您使用的用户名如输出所示是“匿名”的,请检查保护表以查看该用户是否具有对您尝试同步的文件的权限(如果存在基于IP的保护,请对照生成计算机的IP进行检查)


如果您不确定此作业作为哪个Perforce用户名运行,测试的快速方法可能是删除“Perforce test”客户端,因为它看起来像插件将重新创建它(此时用户名将显示在客户端的所有者字段中)。您还可以检查Perforce服务器的日志,查看哪个用户正在运行这些命令。

在视图映射部分,可能需要将P4路径(//depot/perf/…)映射到本地路径(如//workspace/…)。@BrunoLavit我尝试了您提到的方法,但它仍然失败,并出现相同的错误。您能否与P4管理员检查权限表是否正常?您的jenkins主(或从)进程正在使用您在P4V客户端测试时使用的同一用户运行?@BrunoLavit再次感谢您的回复!在Jenkins的运行期间,我是否可以打印出p4用户名和passwd?这应该验证我是否使用同一个用户。没有pb帮助:)您可以使用P4PASSWD和P4USER变量,我认为()