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 扫描仪代码覆盖率报告