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 中锁定源文件