Sonarqube ANT 为 SAP Hybris 构建 azure devops

Posted

技术标签:

【中文标题】Sonarqube ANT 为 SAP Hybris 构建 azure devops【英文标题】:Sonarqube ANT build azure devops for SAP Hybris 【发布时间】:2020-08-19 17:13:36 【问题描述】:

我正在尝试为 SAP hybris 设置 sonarqube,我们使用 azure devops 进行构建,并使用 ant build 来构建 SAP hybris。 sonarqube 位于由 SQL DB 支持的单独服务器中,我确认它正在工作。 我希望 ant 构建与 sonarqube 服务器通信。

在 config--> local.properties 我添加了以下 sonarqube 属性

sonar.projectName=xxx_xxxxxx_xx sonar.jdbc.url=jdbc:sqlserver://Rxxxxxxxx02:1433;databaseName=soxxrxxxx;integratedSecurity=true sonar.projectKey=xxx_xxxxxx_xxKey sonar.projectVersion=1.0 sonar.excludedExtensions=acceleratorcms,acceleratorfacades,acceleratorservices,acceleratorstorefrontcommons,addonsupport,captchaaddon,commercefacades,platformservices for SonarQube > 6.4 sonar.host.url=http://xxxxxxbldxx:9000 sonar.login=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 谁能帮助我如何设置?

【问题讨论】:

这篇文章可能对你有帮助:sukesh-kumar.blogspot.com/2017/09/sonar-in-hybris.html 我也试过了,我没有锻炼!! BUILD FAILED D:\xxxxxx\xxxxxx1811\hybris\bin\platform\build.xml:94:执行此行时出现以下错误:D:\xxxxxx\xxxxxx1811\hybris\bin\platform\resources\ant\sonar.xml :681: java.lang.IllegalStateException: 未在 org.sonarsource.scanner.api.EmbeddedScanner.stop(EmbeddedScanner.java:164) 的 org.sonarsource.scanner.api.EmbeddedScanner.checkLauncherExists(EmbeddedScanner.java:244) 开始/跨度> @Sar Hybris 版本是什么? SonarQube 版本? 我们使用 hybris 6.7,sonarqube 版本是 8 【参考方案1】:

您是否尝试过Measuring Code Quality with Sonar 使用 SonarQube 配置 SAP Commerce Cloud?

此外,当您使用sonar.host.url 时,您不再需要sonar.jdbc.url

【讨论】:

我试过了,我仍然构建失败。从 platfrom 文件夹通过 cmd 我执行“ant sonar”命令 BUILD FAILED D:\xxxxxx\xxxxxxx\hybris\bin\platform\build.xml:82:执行此行时出现以下错误:D:\xxxxxx\xxxxxxx\hybris \bin\platform\resources\ant\sonar.xml:89: java.lang.IllegalStateException: not started at org.sonarsource.scanner.api.EmbeddedScanner.checkLauncherExists(EmbeddedScanner.java:244) at org.sonarsource.scanner.api .EmbeddedScanner.stop(EmbeddedScanner.java:164) @Sar 您使用的是什么 Hybris 版本?试试ant sonarcheck hybris-1811 和 sonarqube - 8 .. 那里试过 ant sonarcheck 也有同样的错误。我需要在 build.xml 文件中添加任何内容吗?我是 ant build 的新手【参考方案2】:

原因是 Hybris 发行版附带的 ANT 任务与 Sonar 版本 8 不兼容。为了解决您的问题,有两种选择:

a) 本地解决方法

删除平台文件夹 ./platform/resources/ant/sonar/lib 中的 JAR sonarqube-ant-task-XXX.jar。下载较新的版本(例如 sonarqube-ant-task-2.7.0.1612.jar)并将其放在文件夹 ./platform/resources/ant/sonar/lib 中。

编辑文件 ./platform/resources/ant/sonar/sonar.xml 并更改用于定义声纳任务的元素。您必须包含新的 jar 文件:

<taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml">
    <classpath>
        <path path="$platformhome/resources/ant/sonar/lib/sonarqube-ant-task-2.7.0.1612.jar" />
    </classpath>
</taskdef>

应用此更改后,您应该能够运行 ant sonarcheck 而不会出现上述错误。

b) CI 支持的解决方案

如果您想在 CI 服务器(例如 Jenkins)上自动执行声纳检查,您必须覆盖 SAP 平台发行版提供的声纳资源。一种常见的方法是使用自定义方法:

在您的配置文件夹中创建一个自定义文件夹,例如./hybris/config/customize 将新 jar 和修改后的 sonar.xml 添加到此自定义目录。所以结构将是: ./hybris/config/customize/platform/resources/ant/sonar/lib/sonarqube-ant-task-2.7.0.1612.jar ./hybris/config/customize/platform/resources/ant/sonar/sonar.xml

在您的构建作业中,您必须确保调用此步骤:

蚂蚁定制

此目标将覆盖平台分发中的资源。这是 SAP 规定的处理此类自定义的官方方式。

在构建服务器上调用 ant customize 目标后,您可以构建平台(ant clean all)并调用声纳检查(ant sonarcheck )。

【讨论】:

以上是关于Sonarqube ANT 为 SAP Hybris 构建 azure devops的主要内容,如果未能解决你的问题,请参考以下文章

从 SonarQube 4.5.4 LTS 升级到 5.3 后,Ant 分析无法删除文件

ANT 任务:使用 JaCoCo 的 SonarQube 扫描仪代码覆盖率报告

Jenkins+Ant+Gitlab+Sonarqube+Docker实现持续集成,质量管理

SAP ME01鍒涘缓璐ф簮娓呭崟

对文件执行责备时发生 SonarQube 错误

SonarQube 错误:尝试锁定表“PROJECT_MEASURES”超时