SAP Hybris附带集成的PMD插件,并运行自定义PMD代码规则集。
PMD插件是通过Hybris ANT构建脚本调用的。
但是我想知道是否有一种方法可以将Hybris套件与SonarQube集成
发布于 2016-08-26 10:06:13
根据您的hybris版本,已经存在一个Sonar任务,该任务将把指标发送到sonar
。
首先转到您的平台主页:
cd $HYBRIS_HOME/hybris/bin/platform
然后,为了正确初始化Ant:
. ./setantenv.sh
执行测试:
ant unittests
将结果发送到Sonar:
ant sonar
声纳运行器可以在config/local.properties
文件中在平台内部进行配置。例如:
sonar.java.source=8
sonar.projectName=Example
sonar.projectKey=example
sonar.exclusions=file:**/gensrc/**, **/ws/axis/*
sonar.login=secret
sonar.password=evenmoresecret
sonar.excludedExtensions=core,testweb,scripting,paymentstandard,mediaweb,maintenanceweb,deliveryzone,commons,processing,impex,validation,catalog,europe1,platformservices,workflow,hac,comments,advancedsavedquery,springintegrationlibs,ldap,hmc,virtualjdbc,cockpit,admincockpit,reportcockpit,platformhmc,productcockpit,customerreview,sapcoretest,sapcoreodata,sapcore,sapcorejco,sapcorejcorec,sapcorebol,advancedexport,backoffice,datahubbackoffice,mcc,wishlist,mediaconversion,solrfacetsearch,solrfacetsearchhmc,voucher,promotions,basecommerce,ticketsystem,cms2,cms2lib,btg,cmscockpit,btgcockpit,b2bcommerce,payment,commerceservices,b2bapprovalprocess,commercewebservicescommons,cscockpit,acceleratorservices,b2bacceleratorservices,acceleratorcms,commercefacades,acceleratorfacades,acceleratorstorefrontcommons,b2bacceleratorfacades,addonsupport,sapcoreaddon,captchaaddon,liveeditaddon,commercesearch,commercesearchhmc,commercesearchbackoffice,datahubadapter,sapcoreconfiguration,sapmodel,sapproductavailability,sapproductavailabilityhmc,b2bsapproductavailability,sappricingbol,sappricinghmc,sappricing,sappricingproductcarouseladdon,b2bsappricing,sapcustomerb2c,sapcustomerb2b,sapmodelhmc,saporderexchange,saporderexchangeb2b,sapcoreconfigurationhmc,sapproducthmc,sapcoreconfigurationbackoffice,multipaymentmode,amazonpay,codpayment,bspay,paypalservice
这也是您可能希望配置Sonar实例结果需要发送到的位置。
发布于 2016-08-25 14:19:56
假设这是我们正在讨论的Java代码,您可以很容易地用SonarQube对其进行“分析”。就“集成”而言,如果你的意思是你想要通过SonarQube运行“自定义PMD代码规则集”,那应该只需要安装SonarQube PMD插件并设置质量配置文件。
发布于 2021-04-12 21:44:40
sonar
目标已弃用。相反,您应该使用sonarcheck
目标。默认情况下,此目标扫描添加到localextensions.xml
文件的所有扩展名,但您可以覆盖此列表。所有参数都可以通过使用local.properties
文件或通过系统属性传递来配置(参数以-D
为前缀)。
假设您在bin/modules/custom
目录中有4个扩展。它们被命名为ext1
、ext2
、ext3
和ext4
。以下是在测试代码覆盖率范围内执行SonarScanner分析时应该执行的步骤。
构建软件
SonarScanner要求构建项目(需要二进制文件)。
平台配置Ant cd ${HYBRIS_HOME}/hybris/bin/
执行测试(+JaCoCo)
SAP Hybris套件提供了两个任务来执行测试:
-对主测试中的类进行测试-对web context中的类进行测试
两者都必须使用额外的参数来执行,以生成测试代码覆盖率报告。
alltests
ant alltests \ -Dtestclasses.extensions=ext1,ext2,ext3,ext4 \-Dtestclasses.reportdir=/tmp/为了不中断在impex
文件中使用非java.locale.providers
字符的测试,需要使用ASCII码参数。仅当added.
和JaCoCo allwebtests
\ -Dtestclasses.extensions=ext1,ext2,ext3,ext4 \-Dtestclasses.reportdir=/tmp/allwebtests.reportdir=/tmp/allwebtest.reportdir=/tmp/allwebtest\dtestclasses.reportdir=/tmp/allwebtests.reportdir=/tmp/allwebtest\dtestclasses.reportdir=/tmp/allwebtest.reportdir=/tmp/allwebtest\tmp CLDR
当所有测试完成后,我们必须将JaCoCo exec
文件转换为XML格式。
/HYBRIS_HOME/ext4\ --xml模块
执行SonarScanner
有几个参数需要设置:
sonar.host.url
- SonarQube/SonarCloud服务器URLsonar.login
-用于授权到serversonar.projectKey
的用户令牌-项目identifiersonar.projectName
-项目显示namesonar.projectVersion
-项目versionsonar.java.source
-运行软件所需的Java版本(仅适用于早于2105)sonar.extensions
的版本-应分析的扩展模块(仅适用于早于2105)sonar.junit.reportPaths
的版本-路径到测试报告-应该被SonarScannersonar.coverage.jacoco.xmlReportPaths
排除的测试-到JaCoCo XML resultssonar.test.exclusions
的路径
ant sonarcheck
-Dsonar.host.url=https://example.org/ \
-Dsonar.login=1234567890abcdefghijk \
-Dsonar.projectKey=my.company:custom-extensions \
-Dsonar.projectName="Custom Extensions" \
-Dsonar.projectVersion=1.0.0-SNAPSHOT \
-Dsonar.java.source=11 \
-Dsonar.extensions=ext1,ext2,ext3,ext4 \
-Dsonar.junit.reportPaths=/tmp/alltests,/tmp/allwebtests \
-Dsonar.test.exclusions= \
-Dsonar.coverage.jacoco.xmlReportPaths=/tmp/jacocoTestReport.xml
https://stackoverflow.com/questions/39147071
复制相似问题