创建Sonarqube项目

Sonarqube (nee Sonar)是炸弹。 不必每天检查一次,但是如果您对质量很认真,则可以在Sprint计划期间(如果不是每周一次)对其进行检查。

在nemo.sonarqube.com上查看示例项目,例如OpenJPA ,以了解可用的信息。 您可能首先需要专注于特定组件,例如OpenJPA JDBC 。

作为开发人员,我对“问题”(主要是FindBugs和Squid)和“单元测试覆盖率”最感兴趣。 作为一名架构师,我最感兴趣的是“包装缠结指数”和“复杂性” –前者是对封装和去耦进行适当衡量的方法,后者是对可维护性进行衡量的方法。

重要的是要用适量的盐查看这些数字。 他们提供了宝贵的见解,但需要一些经验才能充分利用它们。 这就是为什么要使这些信息远离Bean计数器很重要,因为Bean计数器会设置不合理的标准,例如在所有单元测试中90%的代码覆盖率。 (如果您拥有丰富的异常处理能力,但没有办法模拟将引发这些异常的类,那么这将是不可能实现的。只有傻瓜才能用代码健壮性换取更高的分数。)

安装Sonarqube

安装声纳法很简单。 它与自己的webapp服务器和嵌入式数据库捆绑在一起,因此您只需解压缩并运行启动脚本即可将其检出。 生产系统应使用真实的数据库。 支持多个数据库。

检查sonarqube网站以获取详细信息。

创建我们的项目

我承认–创建项目非常违反直觉。 简而言之,一切都是通过将数据推送到服务器来处理的,而无需先在声纳服务器上创建任何东西。 (您仍然需要在sonarqube服务器上创建管理员用户。)

实际上,这意味着我们添加了一个maven插件。 这是一个昂贵的插件,因此通常使用自定义配置文件,例如“声纳”(用于旧名称)。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><profiles><profile><id>sonar</id><properties><sonar.language>java</sonar.language><sonar.host.url>http://chaos:9000</sonar.host.url><sonar.jdbc.url>jdbc:postgresql://chaos/sonar</sonar.jdbc.url><sonar.jdbc.username>sonar</sonar.jdbc.username><sonar.jdbc.password>sonar</sonar.jdbc.password></properties><build><plugins><plugin><groupId>org.jacoco</groupId><artifactId>jacoco-maven-plugin</artifactId><version>0.6.4.201312101107</version><executions><execution><id>default-prepare-agent</id><goals><goal>prepare-agent</goal></goals></execution><execution><id>default-prepare-agent-integration</id><goals><goal>prepare-agent-integration</goal></goals></execution><execution><id>default-report</id><goals><goal>report</goal></goals></execution><execution><id>default-report-integration</id><goals><goal>report-integration</goal></goals></execution><execution><id>default-check</id><goals><goal>check</goal></goals><configuration><rules><!-- implmentation is needed only for Maven 2 --><rule implementation="org.jacoco.maven.RuleConfiguration"><element>BUNDLE</element><limits><!-- implmentation is needed only for Maven 2 --><limit implementation="org.jacoco.report.check.Limit"><counter>COMPLEXITY</counter><value>COVEREDRATIO</value><minimum>0.60</minimum></limit></limits></rule></rules></configuration></execution></executions></plugin></plugins></build></profile></profiles>
</project>

更新我们的项目

声纳插件很昂贵,因此不应将其作为例行程序的一部分运行。 一种常见的做法是安排在CI服务器(Hudson,Continuum等)上进行每晚构建。开发人员可能还希望在处理问题积压时执行计划外构建–一种解决方案引入其他较低优先级的情况并不罕见。问题。

源代码

使用此插件的示例项目位于https://github.com/beargiles/project-student [github]和http://beargiles.github.io/project-student/ [github页面]。

这个项目说明需要对我们如何解释结果有一定的认识。 我使用两种常见的做法-抛出内部异常而不是返回空值,并使用自定义的'UnitTestException'测试失败代码,而不会在日志中堆满无关的信息。 该代码看起来与可疑代码相同,因此已正确标记,但似乎没有办法消除鱿鱼警告。 (Findbugs有其自己的SuppressWarnings注释。)

总体而言,这仍然是一个巨大的胜利。

(更新:可以通过sonarqube的“质量配置文件”选项卡控制鱿鱼警告。这可用于将严重性级别降低为“信息”,但由于这些有时是合法警告,因此我不愿直接禁用这些测试。为什么我强烈希望使用每个实例的FindBugs SuppressWarnings注释而不是更改这些警告级别。)

参考: Invariant Properties博客中的JCG合作伙伴 Bear Giles 创建Sonarqube项目 。

翻译自: https://www.javacodegeeks.com/2014/02/creating-sonarqube-projects.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365153.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android18lazuli,The Rise And Fall Of Android 17

Hey guys, Tommy here. Today I’m bringing you another blog talking about Android 17. I’ve had mixed emotions on Android 17’s return in Dragon Ball Super since it originally happened. I feel like now with this whole Android 17‘a return is something I sho…

luogu P1462 通往奥格瑞玛的道路

嘟嘟嘟 这道题的题面相当的迷&#xff0c;我看了半天都没懂。最后看了题解的解释才懂。 他是这么个意思&#xff1a;对于所有能活着走到终点的路径&#xff0c;输出每一条路径中过路费最多的城市的最小值。 那么自然想到二分过路费&#xff0c;然后用dijkstra或spfa判断是否存在…

树莓派 红灯不亮_请问我的树莓派烧了系统后板子只有红灯亮,而act绿灯不亮,并且网口不插网线两个灯都是微微亮,请问?...

错误已找出&#xff0c;是镜像文件的问题。如果你的情况跟我下面的情况一样&#xff0c;可以把镜像重新下载一遍。以下是原回答&#xff1a;我的也是&#xff0c;买的3b。第一次烧录系统是成功的&#xff0c;TF卡插入之后&#xff0c;上电&#xff0c;power红灯亮&#xff0c;A…

Maven私服(Nexus)搭建总结

因为工作需要&#xff0c;第一次搭建Maven私服&#xff0c;使用的是目前最流行的Sonatype Nexus。搭建私服并不难&#xff0c;官网有很详细的说明&#xff0c;只需几个步骤即可搭建一个可用的私服&#xff0c;但因为公司系统环境&#xff08;测试&#xff09;的原因还是遇到几个…

Effeckt.css – CSS3 Transitions Animations 精妙应用

CSS3 不仅仅用作界面效果补充&#xff0c;还可以用来替换传统的一些界面实现&#xff0c;而且效果更酷。Effeckt.css 收集了众多精妙的 CSS3 Transitions & Animations 效果应用&#xff0c;例如&#xff1a;弹窗、按钮、导航、列表、页面切换等等。 您可能感兴趣的相关文章…

Java开发人员的5种工具

改善我们编写的Java代码的一种方法是使用最好的工具。 因此&#xff0c;让我们看看IDR Solutions建议使用的5种最常用的工具来帮助Java开发人员编写更好的代码。 查找错误 FindBugs是一个开放源代码程序&#xff0c;根据Lesser GNU Public许可的条款进行分发&#xff0c;并且使…

html如何让字体自动变色,CSS使文字部分变色

思路思路很简单&#xff0c;就是一个字写两遍&#xff0c;一个字只显示部分&#xff0c;不过不能真的把一个字写两遍。这里就需要用到CSS伪元素:before和:after&#xff0c;记住这个“伪元素”的“伪”字&#xff0c;表明它本来是不存在的。我们的方法就是在伪元素里放置相同的…

打开回收站

explorer.exe ::{645FF040-5081-101B-9F08-00AA002F954E}转载于:https://www.cnblogs.com/hshy/p/9877429.html

Codrops 教程:基于 CSS3 的精美模态窗口效果

Codrops 分享了漂亮的模态窗口效果实现方法&#xff0c;希望给前端开发人员提供一些创新显示对话框的启示。这个方案使用了触发按钮&#xff08;或任何的 HTML 元素&#xff09;&#xff0c;在点击的时候出现一个模态窗口&#xff0c;带有简单的过渡&#xff08;或动画&#xf…

html5录像功能限制时间,HTML5拍照和摄像机功能实战详解

开篇最近在做一个chrome app的云相机应用&#xff0c;应用包括拍照、摄像、保存照片视频、上传文件等等核心功能&#xff0c;其中涉及到很多HTML5对媒体流相关的API。写这篇文章的目的&#xff0c;其一是总结梳理知识点&#xff0c;最重要是希望对有相关需求的读者提供一些指导…

选择Vert.x的3个理由

Vert.x是用于JVM的轻量级高性能应用程序平台 现代Web应用程序和移动客户端的兴起重新定义了Web服务器的期望。 Node.js是第一个识别范式转换并提供解决方案的技术。 应用程序平台Vert.x借鉴了Node.js的一些创新&#xff0c;并使其在JVM上可用&#xff0c;将新鲜的想法与最复杂…

spring和mybatis的整合开发(基于MapperScannerConfigurer的整合开发(适用于复杂项目,接口较多的情况))...

在实际项目中&#xff0c;Dao层会包含很多接口&#xff0c;这样会导致spring配置文件过于臃肿。这时就需要采用扫描包的形式来配置mybaits中的映射器。 采用MapperScannerConfigurer来实现。 MapperScannerConfigurer类在spring配置文件中可以配置以下几个属性&#xff1a; 1.b…

页面加载前执行函数

window.onpageshow function(){ var token gg.core.cookie.getValue("token"); console.log(token); if(token ""||token null){ window.location login.html; return; }};转载于:https://www.cnblogs.com/tuhazi/p/987825…

表格对角线两边打字_表格斜线一分为二怎么打字(excel斜杠分割表格打字)

在整理表格的时候&#xff0c;相信许多朋友都会涉及到表格斜线的制作。比如单斜线和双斜线来区分不同维度项目。下面我们就来学习一下&#xff0c;如何通过Excel快速来添加我们的表格斜线。案例一&#xff1a;两步快速制作单表格单斜线第一步&#xff1a;首先在单元格中依次输入…

FROONT – 超棒的可视化响应式网页设计工具

FROONT 是一个基于 Web 的设计工具&#xff0c;在浏览器中运行&#xff0c;使得各类可视化设计的人员都能进行响应式的网页设计&#xff0c;即使是那些没有任何编码技能的设计师。FROONT 使得响应式网页设计能够可视化操作&#xff0c;能够在浏览器中使用直观的拖放工具进行设计…

avalon.js 转义html,avalon模块的内建适配器

text bindings&#xff0c;第一个传参将强制转换为字符串&#xff0c;假值为""&#xff0c;然后变成目标节点的innerText!今天的天气为&#xff1a; $.require("ready,more/avalon", function(){var viewModel {myMessage: $.observable()};$.applyBindin…

参数化的JUnit测试

有时&#xff0c;您会遇到一个问题&#xff0c;就是尖叫使用“参数化”测试&#xff0c;而不是多次复制/粘贴相同的方法。 测试方法基本上是相同的&#xff0c;唯一改变的是传入的数据。在这种情况下&#xff0c;请考虑创建一个利用JUnit中的“ Parameterized ”类的测试用例。…

OO-第一单元总结

经过了前三次作业和两次实验的引导&#xff0c;我的编程思路在逐步从面向过程转向面向对象。也对面向对象有了初步的理解。虽然第一次实验由于自己没有及时完成导致没有提交过有些遗憾&#xff0c;但是第二次实验还是提交了几次的&#xff08;虽然由于时间原因并没有做好本地测…

kafka数据 落盘_Kafka数据可靠性保证三板斧-ACK/ISR/HW

点击上方蓝色字体&#xff0c;选择“设为星标”回复”资源“获取更多资源点击右侧关注&#xff0c;大数据开发领域最强公众号&#xff01;点击右侧关注&#xff0c;暴走大数据&#xff01;为保证producer发送的数据&#xff0c;能可靠的发送到指定的topic&#xff0c;topic的每…

2013年五大主流浏览器 HTML5 和 CSS3 兼容性大比拼

转眼又已过去了一年&#xff0c;在这一年里&#xff0c;Firefox 和 Chrome 在拼升级&#xff0c;版本号不断飙升&#xff1b;IE10 随着 Windows 8 在去年10月底正式发布&#xff0c;在 JavaScript 性能和对 HTML5 和 CSS3 的支持方面让人眼前一亮。这篇文章给大家带来《五大主流…