首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将SonarQube与SAP How集成

如何将SonarQube与SAP How集成
EN

Stack Overflow用户
提问于 2016-08-25 13:45:30
回答 3查看 5K关注 0票数 2

SAP Hybris附带集成的PMD插件,并运行自定义PMD代码规则集。

PMD插件是通过Hybris ANT构建脚本调用的。

但是我想知道是否有一种方法可以将Hybris套件与SonarQube集成

EN

回答 3

Stack Overflow用户

发布于 2016-08-26 10:06:13

根据您的hybris版本,已经存在一个Sonar任务,该任务将把指标发送到sonar

首先转到您的平台主页:

代码语言:javascript
运行
AI代码解释
复制
cd $HYBRIS_HOME/hybris/bin/platform

然后,为了正确初始化Ant:

代码语言:javascript
运行
AI代码解释
复制
. ./setantenv.sh

执行测试:

代码语言:javascript
运行
AI代码解释
复制
ant unittests

将结果发送到Sonar:

代码语言:javascript
运行
AI代码解释
复制
ant sonar

声纳运行器可以在config/local.properties文件中在平台内部进行配置。例如:

代码语言:javascript
运行
AI代码解释
复制
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实例结果需要发送到的位置。

票数 4
EN

Stack Overflow用户

发布于 2016-08-25 14:19:56

假设这是我们正在讨论的Java代码,您可以很容易地用SonarQube对其进行“分析”。就“集成”而言,如果你的意思是你想要通过SonarQube运行“自定义PMD代码规则集”,那应该只需要安装SonarQube PMD插件并设置质量配置文件。

票数 1
EN

Stack Overflow用户

发布于 2021-04-12 21:44:40

sonar目标已弃用。相反,您应该使用sonarcheck目标。默认情况下,此目标扫描添加到localextensions.xml文件的所有扩展名,但您可以覆盖此列表。所有参数都可以通过使用local.properties文件或通过系统属性传递来配置(参数以-D为前缀)。

假设您在bin/modules/custom目录中有4个扩展。它们被命名为ext1ext2ext3ext4。以下是在测试代码覆盖率范围内执行SonarScanner分析时应该执行的步骤。

构建软件

SonarScanner要求构建项目(需要二进制文件)。

平台配置Ant cd ${HYBRIS_HOME}/hybris/bin/

  1. 。./setantenv.sh

  1. 创建ant扩展名ext4\ -Dplatform.extensionsgen.filename=${HYBRIS_HOME}/hybris/config/localextensions.xml \ -Dplatform.extensions=ext1,ext2,ext3,ext4

  1. 构建软件和所有

执行测试(+JaCoCo)

SAP Hybris套件提供了两个任务来执行测试:

-对主测试中的类进行测试-对web context中的类进行测试

两者都必须使用额外的参数来执行,以生成测试代码覆盖率报告。

  1. download JaCoCo JaCoCo cd /tmp wget https://repo1.maven.org/maven2/org/jacoco/org.jacoco.agent/0.8.6/org.jacoco.agent-0.8.6-runtime.jar -O jacocoAgent.jar cd agent

  1. 执行alltests ant alltests \ -Dtestclasses.extensions=ext1,ext2,ext3,ext4 \-Dtestclasses.reportdir=/tmp/
    1. \Dtestclasses.reportdir=/tmp/ant\ -Dstandalone.javaoptions="-Djava.locale.providers=COMPAT,CLDR -javaagent:/tmp/jacocoAgent.jar=destfile=/tmp/jacocoAlltests.exec“

为了不中断在impex文件中使用非java.locale.providers字符的测试,需要使用ASCII码参数。仅当added.

  • Execute代理为-Dstandalone.javaoptions="-Djava.locale.providers=COMPAT,-javaagent:/tmp/jacocoAgent.jar=destfile=/tmp/jacocoAllwebtests.exec"

和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格式。

  1. download JaCoCo cli cd /tmp wget https://repo1.maven.org/maven2/org/jacoco/org.jacoco.cli/0.8.6/org.jacoco.cli-0.8.6-nodeps.jar -O jacocoCli.jar cd wget

  1. create XML report java -jar /tmp/jacocoCli.jar report \ /tmp/jacocoAlltests.exec \ /tmp/jacocoAllwebtests.exec \ --classfiles ${HYBRIS_HOME}/hybris/bin/modules/custom/ext1 \ --classfiles ${HYBRIS_HOME}/hybris/bin/modules/custom/ext2 \ --classfiles ${HYBRIS_HOME}/hybris/bin/modules/custom/ext3 \-classfiles${HYBRIS_HOME}/hybris/bin/ /tmp/jacocoTestReport.xml

/HYBRIS_HOME/ext4\ --xml模块

执行SonarScanner

有几个参数需要设置:

  • sonar.host.url - SonarQube/SonarCloud服务器URL
  • sonar.login -用于授权到server
  • sonar.projectKey的用户令牌-项目identifier
  • sonar.projectName -项目显示name
  • sonar.projectVersion -项目version
  • sonar.java.source -运行软件所需的Java版本(仅适用于早于2105)
  • sonar.extensions的版本-应分析的扩展模块(仅适用于早于2105)
  • sonar.junit.reportPaths的版本-路径到测试报告-应该被SonarScanner
  • sonar.coverage.jacoco.xmlReportPaths排除的测试-到JaCoCo XML results
  • sonar.test.exclusions

的路径

代码语言:javascript
运行
AI代码解释
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39147071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档