Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perforce密码(P4PASSWD)无效或未设置_Perforce_Cruisecontrol.net - Fatal编程技术网

Perforce密码(P4PASSWD)无效或未设置

Perforce密码(P4PASSWD)无效或未设置,perforce,cruisecontrol.net,Perforce,Cruisecontrol.net,我在Cruisecontrol.net xml文件中有这个块: <cruisecontrol xmlns:cb="urn:ccnet.config.builder"> <project name="MyProject"> <artifactDirectory>C:\Program Files (x86)\CruiseControl.NET\Mydashboard</artifactDirectory>

我在Cruisecontrol.net xml文件中有这个块:

<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
    <project name="MyProject">
        <artifactDirectory>C:\Program Files (x86)\CruiseControl.NET\Mydashboard</artifactDirectory>

            <sourcecontrol type="p4">
                <view>//Myprojectfolder/Code/...</view>
                <executable>c:\Program Files\Perforce\p4.exe</executable>
                <client>Myworkspace</client>
                <user>John</user>
                <applyLabel>false</applyLabel>

                <port>PERFORCEPR123:10080</port>
                <autoGetSource>true</autoGetSource>
            </sourcecontrol>
            <tasks>

                <msbuild>
                    <executable>C:\WINDOWS\Microsoft.NET\Framework64\v3.5\MSBuild.exe</executable>
                    <workingDirectory>D:\Workspace\Myworkspace\Code\src</workingDirectory>
                    <projectFile>Myproject.sln</projectFile>
                    <targets>Build</targets>
                    <timeout>1000000</timeout>
                    <logger>C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
                    <buildArgs>/v:minimal /noconlog /p:Configuration=Release</buildArgs>
                </msbuild>

            </tasks>

            <publishers>

                <xmllogger logDir="C:\Program Files (x86)\CruiseControl.NET\Mydashboard\Buildlogs" />
                    <buildpublisher>
                        <sourceDir>D:\Workspace\Myworkspace\Code\src\newsrc\Webapplication.site</sourceDir>
                        <publishDir>D:\deployment\Webapplication.site</publishDir>
                        <useLabelSubDirectory>false</useLabelSubDirectory>
                        <alwaysPublish>false</alwaysPublish>
                    </buildpublisher>
            </publishers>
        </project>
</cruisecontrol>
有解决办法吗


谢谢

我怀疑CC只是在使用Perforce命令行客户端。为了解决这个问题,我会:

1) 向Perforce添加一个组,并将超时设置为无限。 2) 将运行CC任务的用户添加到Performce组 3) 从生成计算机运行“p4-u登录”

这将存储一个永久性的本地票证来验证用户。如果您需要一个帐户来运行工具(如CC),请填写此表格,Performce将为您提供一个免费的后台用户:


如果您的票证文件不正确,则会出现此错误。删除票据文件,然后运行工具或运行p4登录重新创建票据

*尼克斯位置:~/.p4

Windows位置:C:\Documents and Settings\\p4tickets.txt


感谢Matt的回复。我已经向perforce添加了一个组,并将超时设置为无限,并将运行cruisecontrol的用户John添加到该perforce组。实际上,最初,我可以这样做,但最近我更改了服务器名称和端口号,现在我在标记中使用新的服务器名称和端口号。当我更改了服务器名称和端口号时,这个问题开始出现。知道为什么会发生这种情况吗?您只需要再次登录。生成的票证名称的一部分是它所连接的服务器。运行“p4票证”查看票证的外观。
BUILD EXCEPTION
Error Message:
ThoughtWorks.CruiseControl.Core.CruiseControlException: Perforce GetModifications failed: c:\Program Files\Perforce\p4.exe -s -c Myworkspace -p PERFORCEPR123:10080 -u John -P john123 changes -s submitted //Myprojectfolder/Code/......@2014/01/15:08:13:20,@2014/01/15:08:14:20
Error output from process was:
error: Perforce password (P4PASSWD) invalid or unset.
exit: 1

   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce.P4.Execute(ProcessInfo process, String description)
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.Perforce.P4.GetModifications(IIntegrationResult from, IIntegrationResult to)
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod.GetModificationsWithLogging(ISourceControl sc, IIntegrationResult from, IIntegrationResult to)
   at ThoughtWorks.CruiseControl.Core.Sourcecontrol.QuietPeriod.GetModifications(ISourceControl sourceControl, IIntegrationResult lastBuild, IIntegrationResult thisBuild)
   at ThoughtWorks.CruiseControl.Core.IntegrationRunner.GetModifications(IIntegrationResult from, IIntegrationResult to)
   at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate(IntegrationRequest request)