Jenkins Perforce 插件未从 Perforce 签出代码

Posted

技术标签:

【中文标题】Jenkins Perforce 插件未从 Perforce 签出代码【英文标题】:Jenkins Perforce Plugin Not Checking Out Code From Perforce 【发布时间】:2015-03-30 07:28:38 【问题描述】:

我正在尝试使用 perforce SCM 创建 jenkins 工作。 Sonar Runner 用于分析项目,这将使我在分析项目时成功执行。

问题在于 perforce jenkins 插件,它没有从 perforce 中检出代码,因此声纳分析运行时没有从 perforce 中检出代码。

由用户 jones j alapat 发起 [EnvInject] - 加载节点环境变量。 建立在工作区 C:\Program Files (x86)\Jenkins\jobs\perforceSpringPOC\workspace 的 master 上 使用主 perforce 客户端:mar30 [工作区] $ "C:\Program Files\Perforce\p4.exe" 工作区 -o mar30 将 P4 客户端根更改为:C:\Program Files (x86)\Jenkins\jobs\perforceSpringPOC\workspace 保存修改后的客户端 mar30 [工作区] $ "C:\Program Files\Perforce\p4.exe" -s 客户端 -i 上次构建变更集:42 [工作区] $ "C:\Program Files\Perforce\p4.exe" 更改 -s 提交 -m 1 //mar30/... [工作区] $ "C:\Program Files\Perforce\p4.exe" -s 更改 -s 提交 //mar30/...@43,@42 将工作区同步到更改列表 42。 [工作区] $ "C:\Program Files\Perforce\p4.exe" -s sync //mar30/...@42 同步完成,耗时 36 毫秒 [工作区] $ D:\softwares\sonar-runner-2.4\bin\sonar-runner.bat -Dsonar.jdbc.driver=com.mysql.jdbc.Driver "-Dsonar.jdbc.url=jdbc:mysql:// localhost:3306/sonar?autoReconnect=true&useUnicode=true&characterEncoding=utf8" ******** ******** -Dsonar.host.url=http://localhost:9000 ****** ** ******** "-Dsonar.projectBaseDir=C:\Program Files (x86)\Jenkins\jobs\perforceSpringPOC\workspace" -Dsonar.projectName=Mar30SpringMVCPOC -Dsonar.projectVersion=1.0 -Dsonar.projectKey= Mar30SpringMVCPOC -Dsonar.sources=。 D:\softwares\sonar-runner-2.4 SonarQube 亚军 2.4 Java 1.8.0_11 甲骨文公司(64 位) 视窗 8.1 6.3 amd64 INFO:运行器配置文件:D:\softwares\sonar-runner-2.4\conf\sonar-runner.properties 信息:项目配置文件:无 INFO:默认语言环境:“en_US”,源代码编码:“windows-1252”(分析取决于平台) 信息:工作目录:C:\Program Files (x86)\Jenkins\jobs\perforceSpringPOC\workspace\.sonar 信息:SonarQube 服务器 5.0 11:49:16.269 信息-加载全局引用... 11:49:16.398 信息 - 加载全局引用完成:129 毫秒 11:49:16.402 信息 - 用户缓存:C:\Windows\system32\config\systemprofile\.sonar\cache 11:49:16.408 信息 - 安装插件 11:49:16.475 信息 - 安装 JDBC 驱动程序 11:49:16.475 信息 - 为 jdbc 创建 JDBC 数据源:mysql://localhost:3306/sonar?autoReconnect=true&useUnicode=true&characterEncoding=utf8 11:49:17.232 信息 - 初始化休眠 11:49:18.094 错误 - 插件报告没有许可证 11:49:18.251 信息 - 加载项目引用... 11:49:19.123 信息 - 加载项目引用完成:872 毫秒 11:49:19.124 信息 - 加载项目设置 11:49:19.459 信息 - 加载技术债务模型... 11:49:19.475 信息 - 加载技术债务模型完成:16 毫秒 11:49:19.475 信息 - 应用项目排除项 11:49:19.590 WARN - SCM 提供程序自动检测失败。没有 SCM 供应商声称支持这个项目。请使用 sonar.scm.provider 定义项目的 SCM。 11:49:19.605 INFO - ------------- 扫描 Mar30SpringMVCPOC 11:49:19.609 信息 - 加载模块设置 11:49:20.159 信息 - 加载规则... 11:49:20.298 信息 - 加载规则完成:139 毫秒 11:49:20.318 信息 - 配置 Maven 插件 11:49:20.372 信息 - 与之前的分析比较 (2015-03-30) 11:49:20.378 INFO - 比较超过 30 天(2015-02-28,分析 2015-03-30 11:37:50.0) 11:49:20.379 信息 - 未配置质量门。 11:49:20.475 信息 - 基本目录:C:\Program Files (x86)\Jenkins\jobs\perforceSpringPOC\workspace 11:49:20.475 信息 - 工作目录:C:\Program Files (x86)\Jenkins\jobs\perforceSpringPOC\workspace\.sonar 11:49:20.475 信息 - 源路径:. 11:49:20.475 信息 - 源编码:windows-1252,默认语言环境:en_US 11:49:20.475 信息 - 索引文件 11:49:20.475 INFO - 0 个文件被索引 ------------------------- 没有从 perforce 中提取文件 11:49:20.490 信息 - 传感器 QProfileSensor... 11:49:20.506 信息 - 传感器 QProfileSensor 完成:16 毫秒 11:49:20.506 信息 - 传感器 InitialOpenIssuesSensor... 11:49:20.520 信息 - 传感器 InitialOpenIssuesSensor 完成:13 毫秒 11:49:20.520 信息 - 传感器 ProjectLinksSensor... 11:49:20.524 信息 - 传感器 ProjectLinksSensor 完成:4 毫秒 11:49:20.525 信息 - 传感器版本事件传感器... 11:49:20.661 信息 - 传感器版本事件传感器完成:136 毫秒 11:49:20.661 信息 - 传感器 FileHashSensor... 11:49:20.661 信息 - 传感器 FileHashSensor 完成:0 毫秒 11:49:20.661 信息 - 传感器 SCM 传感器... 11:49:20.661 信息 - 未检测到 SCM 系统。您可以使用“sonar.scm.provider”属性来明确指定它。 11:49:20.661 信息 - 传感器 SCM 传感器完成:0 毫秒 11:49:20.661 信息 - 传感器 CPD 传感器... 11:49:20.661 信息 - 传感器 CPD 传感器完成:0 毫秒 11:49:20.742 信息 - 执行装饰器... 11:49:20.839 INFO - 将结果存储在数据库中 11:49:21.043 信息 - 分析成功,您可以浏览 http://localhost:9000/dashboard/index/Mar30SpringMVCPOC 11:49:21.043 信息 - 请注意,一旦服务器处理了提交的分析报告,您将能够访问更新的仪表板。 11:49:21.043 INFO - 执行 post-job 类 org.sonar.issuesreport.ReportJob 11:49:21.044 信息 - 执行 post-job 类 org.sonar.plugins.issueassign.notification.SendIssueNotificationsPostJob 11:49:21.044 INFO - 执行 post-job 类 org.sonar.plugins.core.issue.notification.SendIssueNotificationsPostJob 11:49:21.044 信息 - 执行作业后类 org.sonar.plugins.buildbreaker.AlertBreaker 11:49:21.060 信息 - 执行作业后类 org.sonar.plugins.buildbreaker.ForbiddenConfigurationBreaker 信息:------------------------------------------------ ---------------------- 信息:执行成功 信息:------------------------------------------------ ---------------------- 总时间:5.384s 最终内存:12M/183M 信息:------------------------------------------------ ---------------------- 通知上游项目工作完成 完成:成功

如您所见,我的 perforce 中的文件未检出。

我的配置如下

【问题讨论】:

您可以尝试从 perforce 部分的高级设置中清除工作区选项吗?完全擦除,然后选中始终强制同步。这应该可以解决问题。 我已经完成了工作区的清洁工作。 无论如何我使用 p4 插件让它工作 【参考方案1】:

看起来“p4 sync”命令没有发出任何错误。

也许您已经为此工作区中的这些文件运行了“p4 同步”,但随后您从工作站中删除了这些文件。在这种情况下,由于 Perforce 认为您已经拥有这些文件(它不知道您已将它们从工作站中删除),因此您必须运行“p4 sync -f”才能将文件恢复到您的工作站。

【讨论】:

但是我没有从我的工作空间中删除文件,所有文件都存在于工作空间中 如果所有文件都存在于您的工作区中,您的问题中的“如您所见,我的 perforce 中的文件未检出”是什么意思? 我运行了强制同步仍然没有效果。

以上是关于Jenkins Perforce 插件未从 Perforce 签出代码的主要内容,如果未能解决你的问题,请参考以下文章

将单个 Jenkins 发布作业配置为使用 Perforce 作为 SCM 从主干或分支发布

Jenkins Per Slave Pipeline Build Enforcement

Eclipse Perforce 插件和默认文件类型修饰符以便更新版本

使用 Maven 发布插件时在 Perforce 中锁定源文件

Jenkins持续集成项目搭建与实践——基于Python Selenium自动化测试(自由风格)

Jenkins代码上线