SonarSource
通过上述命令成功分析项目将导致以下输出到控制台或日志文件:
SonarQube Runner 2.3
Java 1.7.0_25 Oracle Corporation(64位)
Mac OS X 10.8.5 x86_64
INFO:Runner配置文件:/opt/sonar-runner-2.3/conf/sonar-runner.properties
信息:项目配置文件:/Users/manisarkar/bn_projects/TimelineJS/sonar-project.properties
INFO:默认语言环境:“en_US”,源代码编码:“UTF-8”
信息:工作目录:/Users/manisarkar/bn_projects/TimelineJS/.sonar
信息:SonarQube服务器3.7
14:11:20.927 INFO - 加载批量设置
。
。
。
14:11:38.290 INFO - ANALYSIS SUCCESSFUL,你可以浏览http:// localhost:9000 / dashboard / index / TimelineJS
14:11:38.292 INFO - 执行工作后类org.sonar.issuesreport.ReportJob
14:11:38.293 INFO - 执行岗位职责类org.sonar.plugins.core.issue.notification.SendIssueNotificatiPo的sdtJob
14:11:38.314 INFO - 执行工作后类org.sonar.plugins.core.batch.IndexProjectPo的stJob
14:11:38.356 INFO - 执行工作后类org.sonar.plugins.dbcleaner.ProjectPurgePo的stJob
14:11:38.365 INFO - - >在2013-08-19和2013-09-15之间每天保留一张快照
14:11:38.365 INFO - - >在2012-09-17和2013-08-19之间每周保留一个快照
14:11:38.365 INFO - - >在2008-09-22和2012-09-17之间每月保留一个快照
14:11:38.365 INFO - - >删除之前的数据:2008-09-22
14:11:38.368 INFO - - > Clean TimelineJS [id = 151]
14:11:38.372信息 - 信息:----------------------------------------- -------------------------------
信息:执行成功
信息:------------------------------------------------ ------------------------
总时间:19.099s
终内存:14M / 502M
信息:------------------------------------------------ ------------------------
以下是几个链接,以示例sonar-project.properties文件来帮助创建新的,中国sonarqube 规则,即非Maven Java项目的Sonar设置[05]和SonarQube Runner [06]分析。
注意:SonarQube Runner希望SonarQube在指ding端口上运行,否则会抛出错误,例如ERROR:Sonar server http:// localhost:9000无法访问。这当然可以通过配置文件进行更改(参见上一篇文章[01])。
SonarQube组件
一旦构建完成并成功,可以在仪表板中找到新的或更新的项目。钻入项目将带来一个屏幕,载入重要指标和分析项目的各个方面:
(以上是示例应用程序的屏幕截图)
令人感兴趣的主要重要组成部分是质量指标,复杂因素,复杂性(左下),测试覆盖率指标(单位测试覆盖率和单位测试成功率)。可能安全违规。 Package Tangle Index and Dependencies to cut,sonarqube 规则,绝dui是方便的,以保持清洁的包和松散耦合的依赖关系。同样的说法,LCOM4(方法中缺少凝聚力 - 降值越好),复杂性也揭示了你的类,方法和功能的松散耦合 - 它也是在文件级别和整体级别给出全图。所有这些组件都是软件质量的良好指标,至少如果不是软件工艺 - 底层代码写在质量上有多好?或者它可以被看作是 - 仍然是充足的改进和重构的房间。
热点视图现在进一步分析了分析的其他一些重要方面,并突出显示需要更多关注的领域或者一个更多的问题在其顶点附近 - 要么超越da允许限制,要么需要更多的抛光才能满足要求。
(以上是在nemo.sonarqube.org网站上发布的JDK7的截图)
我非常喜欢下面的设计组件,它可以很好地分解包装依赖关系并强调依赖循环。它是中大型项目中更复杂的事情之一,通常可能会阻碍模块化。











SonarSource简介
构建更好的软件的方法。通过在整个软件开发生命周期中支持代码质量, 帮助您的开发团队从创新的概念中受益, 同时将时间和精力集中在新功能上。的水泄漏范例
我们建议的代码质量的方法是什么?把它当作漏水的东西, 在你拖地板之前把漏水的东西修好!为什么?否则你只是在浪费你的时间和精力。对于代码质量, 同样的逻辑适用;在任何其他情况下, 您都应该在控制下获得新更改和添加代码的质量。一旦该漏洞得到控制, 代码质量将开始系统地改善。阅读更多漏水范例领yang授权收养和赋予
代码质量应该是每个开发人员的关注点, 而不仅仅是少数。一旦您切换到一个漏水的方法, 即新的代码是唯yi的焦点的方法, 开发人员将变得非常感兴趣的主题, 因为 "代码质量" 意味着他们的代码质量。如果您添加的能力是在一个非常短的反馈循环, 你得到的控制反转: 开发人员不仅解决问题, 但在其组织的代码质量的所有权, 因为它应该是在任何地方的情况。统一质量门
除非您在发布时强制执行质量门, 否则您没有到位的代码质量实践。质量门是在进入生产前经过验证的标准列表, 以确保应用程序符合质量要求。换言之, 这是内部质量的去/不去。采用漏水方法, 您可以为每个应用程序强制使用相同的质量闸门, 因为焦点将从应用程序中的遗留代码转移到新的或更新的内容。这使得代码质量成为开发过程的一个组成部分。促进代码管理应用程序组合 (APM)应用程序投资组合管理
泄漏范例创造了一个良性循环来提高代码质量, 但不处理风险。管理者应该能够对其投资组合中的现有风险做出决策。例如, 敏感的应用程序可能需要额外的精力来解决安全问题。这就是为什么, 他们需要有一个代表他们的应用程序组合装饰与相关的健康/风险因素。









SonarQube和JaCoCo的个人测试代码覆盖率
构建部分
这里不需要修改但是,您应该注意Maven Surefire的任何自定义配置,以确保它也适用于我们要创建的配置文件。在春季宠物诊suo的情况下,中国sonarqube 规则,这是我们正在写的参考POM的相关部分:
<建立> <插件>
...
<插件>
<的groupId> org.apache.maven.plugins 的groupId>
<版本> 2.13 版本>
<结构>
<包含>
<包括> ** / * Test.java 包括>
<包括> ** / * Tests.java 包括>
包括>
<排除>
<排除> ** /它/ * IT.java 排除>
排除>
配置>
插件>
...
插件> 建造>
这种配置告诉Surefire:1)排除执行单元测试的集成测试(Surefire的双插件,Failsafe涵盖了集成测试);和2)禁用字节码验证器,防止类被调试时的运行时错误(即添加mocks或TopLink增强功能时)。
依赖部分
在本节中,不需要进行任何更改。我们只想注意到,如果您的项目已经在利用JaCoCo收集整合测试覆盖率指标,并且明确地指出了本部分中的JaCoCo伪像,那么可以将其留下 - 至今没有确定任何冲突。无论如何,它不应该在这里需要,中国sonarqube 规则,所以从这个部分删除它可能更安全。
档案部分
所有必需的更改都在本节中。而且它们都非常干净,因为它们都只需要向POM添加一个新的配置文件。此配置文件将为Surefire配置一个特殊侦听器,以确保适当收集每个单独测试用例的覆盖度量。为了保证成功的测试执行,我们将在此保持与POM的构建部分中显示的相同配置。,配置文件将为包含侦听器代码的伪zao添加新的依赖关系。结果是这样的:
<轮廓>
<! - 使用SonarQube和JaCoCo计算每个测试的覆盖率指标
<建立>
<插件>
<插件>
<的groupId> org.apache.maven.plugins 的groupId>
<版本> 2.13 版本>
<结构>
<! - 与常规测试执行目标相同的配置 - >
由JaCoCo prepare-agent - >配置的<! - 加argLine参数
<包含>
<包括> ** / * Test.java 包括>
<包括> ** / * Tests.java 包括>
包括>
<排除>
<排除> ** /它/ * IT.java 排除>
排除>
<! - 每个测试覆盖所需的新配置 - >
<性能>
<属性>
<名称>听者名称>
<值> org.sonar.java.jacoco.JUnitListener 值>
属性>
属性>
配置>
插件>
插件>
建造>
<依赖性>
<依赖性>
<的groupId> org.codehaus.sonar-plugins.java 的groupId>
<版本> 2.3 版本>
<范围>测试范围>
依赖性>
依赖>
简档>






中国sonarqube 规则-苏州华克斯公司由苏州华克斯信息科技有限公司提供。苏州华克斯信息科技有限公司坚持“以人为本”的企业理念,拥有一支高素质的员工队伍,力求提供更好的产品和服务回馈社会,并欢迎广大新老客户光临惠顾,真诚合作、共创美好未来。华克斯——您可信赖的朋友,公司地址:苏州工业园区新平街388号,联系人:华克斯。