小编sch*_*rer的帖子

如何在jenkins服务器上发布声纳结果,或者我们有声纳报告jenkins插件

jenkins有一个声纳插件,它会触发CI(jenkins)内部的声纳构建,这很有用.

虽然现在我想在没有跳到声纳网站的情况下看到jenkins内部的声纳结果,但如果我只想查看这项工作的一些关键数据,这将非常有用.

它可能是詹金斯的声纳报告插件.

你有类似的需求吗?

jenkins jenkins-plugins sonarqube

11
推荐指数
1
解决办法
2万
查看次数

SonarQube - 结合声纳方式,FindBugs,PMD和Checkstyle,无需重复

我正在寻找SonarQube与FindBugs,PMD和Checkstyle插件的最佳实践.

  1. SonarQube的默认质量配置文件"声纳方式"中的规则与插件的规则有何关系?它们是完全不同的规则还是Sonar方式包含这些插件中最重要的规则?
  2. 组合这些规则集的最佳方法是什么?我怎样才能避免重复检查?
  3. Sonar v.3.x包含一个"带有Findbugs的声纳方式"配置文件.我在v.4.5.1中找不到 - 发生了什么事?

sonarqube sonarqube-4.5

10
推荐指数
1
解决办法
8989
查看次数

声纳圈复杂度规则问题 - 不鼓励多个返回语句

对于下面的代码,sonarqube计算方法圈复杂度为9

String foo() {
    if (cond1) return a;
    if (cond2) return b;
    if (cond3) return c;
    if (cond4) return d;
    return e;
}
Run Code Online (Sandbox Code Playgroud)

据我所知,根据计算规则http://docs.sonarqube.org/display/SONAR/Metrics+-+Complexity,9的复杂性是正确的.因此该方法的复杂性是= 4(如果)+ 4(返回)+ 1(方法)= 9

如果我有一个退出点,这种复杂性可以降低.

String foo() {
    String temp;
    if (cond1) { 
        temp = a;
    } else if (cond2) {
        temp = b;
    } else if (cond3) { 
        temp = c;
    } else if (cond4) {
        temp = d;
    } else {
        temp = e;
    }
    return temp;
}
Run Code Online (Sandbox Code Playgroud)

我相信这个代码比以前的版本更混乱,更难以理解,我觉得拥有返回保护条件的方法是一种更好的编程习惯.那么有什么理由可以考虑返回语句来计算圈复杂度?可以改变计算逻辑,使其不会促进单一退出点.

java cyclomatic-complexity sonarqube

7
推荐指数
1
解决办法
1万
查看次数

JSON模式验证器库

我有一个宁静的Web服务(JAVA),它必须接受JSON请求.我必须首先针对我拥有的JSON模式验证此JSON.我不确定什么是最好的JAVA库来再次验证JSON JSON模式.我使用了json-schema-validator -2.1.7库,但它并没有太大帮助.即使我认为我的JSON不是有效的JSON我也没有任何错误.

这是我用于json-schema-validator-2.1.7的代码

InputStream jsonSchemaInputStream = Assessment.class.getClassLoader().getResourceAsStream("Schemas/AssessmentMetrics.json");
ObjectMapper mapper = new ObjectMapper();

// Allows to retrieve a JSONSchema object on various sources
// supported by the ObjectMapper provided
JSONSchemaProvider schemaProvider = new JacksonSchemaProvider(mapper);

// Retrieves a JSON Schema object based on a file
JSONSchema schema = schemaProvider.getSchema(jsonSchemaInputStream);

// Validates a JSON Instance object stored in a file
List<String> errors = schema.validate(contents);
Run Code Online (Sandbox Code Playgroud)

java json jsonschema java-ee

6
推荐指数
1
解决办法
2万
查看次数

为什么sonar:sonar需要先安装mvn?

官方文档http://docs.sonarqube.org/display/SONAR/Analyzing+with+Maven表示调用声纳的正确方法是:

mvn clean install -DskipTests=true
mvn sonar:sonar
Run Code Online (Sandbox Code Playgroud)

但没有说为什么。声纳如何工作?它需要编译类吗?那么为什么不呢mvn clean compile?或者它需要一个jar文件吗?那么为什么不呢mvn clean package?声纳插件到底是什么?

java maven sonarqube

6
推荐指数
1
解决办法
4870
查看次数

Sonar 4.2在同一个项目中分析Java和JavaScript

我正在尝试用Sonar 4.2分析我的JEE项目.这是一个使用JavaJS多语言JEE项目.

我添加到Sonar 4.2的插件是:Java 2.1JavaScript 1.6.

近日,声纳增加了多语言的分析,下面的文档,我已经去除了sonar.languagesonar-project.properties.但它仍然只分析Java.

我在Jenkins 1.555中使用Sonnar Runner 2.3.它在每次构建后分析项目.

我错过了什么吗?

编辑:sonar-project.properties:

# Required metadata
sonar.projectKey=myProjectKey
sonar.projectName=MyProject
sonar.projectVersion=1.0

# Path to the parent source code directory.
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Since SonarQube 4.2, this property is optional. …
Run Code Online (Sandbox Code Playgroud)

javascript java multilingual code-analysis sonarqube

6
推荐指数
1
解决办法
7245
查看次数

android应用程序中的资产文件夹(eclipse)

我曾经在Android应用程序中搜索创建assets文件夹,我尝试过的解决方案 <App Name>/src/assets/fonts/

但是当我尝试在我的应用程序中使用ttf文件时,我有一个错误:

代码 :

mFace = Typeface.createFromAsset(mContext.getAssets(),"fonts/fontType.ttf");
Run Code Online (Sandbox Code Playgroud)

和错误:

无法制作原生字体

我不知道资产文件夹是否在好地方.

android android-assets

5
推荐指数
1
解决办法
3万
查看次数

无法执行目标...代码= 500

我已升级到SonarQube 5.2,当我尝试运行分析时,我得到以下错误.如果我尝试浏览错误消息中的URL,我会得到一个页面{"errors":[{"msg":""}]}.我正在使用sonar-maven-plugin 2.7.1(来自org.codehaus.mojo).在另一个线程中,有人建议检查Sonar项目是否实际上是项目而不是模块.我检查过了.声纳的日志显示:

127.0.0.1 - - [12/Nov/2015:12:07:56 +0000] "GET /batch_bootstrap/index HTTP/1.1" 400 49 "-" "Maven/3.0.5"
Run Code Online (Sandbox Code Playgroud)

我在MS SQL Server 2008 R2上运行.

注意:当我切换到内置的Db(h2),空,我没有得到错误(但我没有尝试过空的MS SQL Server).什么可能是错的?谢谢.

[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.7.1:sonar (default-cli) on project infra: Fail to execute request [cod
e=500, url=<...>/batch/project.protobuf?key=com.<XXXXXXX>.SOMETHING%3ASOMETHING]: Fail to download [<...>/batch/project.protobuf?key=<XXXXXXX>.SOMETHING%3ASOMETHING]. Response code: 500 -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.7.1:sonar (default-cli
) on project infra: Fail to execute request [code=500, url=<...>/batch/project.protobuf?key=<XXXXXXX>.SOMETHING%3ASOMETHING]
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
        at …
Run Code Online (Sandbox Code Playgroud)

sonarqube sonarqube5.2

5
推荐指数
1
解决办法
1632
查看次数

如何在詹金斯的声纳中获得JaCoCo的报道?

我按照这里的说明
我不使用Maven.

我的Jenkins作业输出说:12:32:33.951 INFO传感器JaCoCoSensor ... 12:32:33.961 INFO项目覆盖率设置为0%,因为没有转储JaCoCo执行数据:/ var/lib/jenkins/workspace/SeqGen/SeqGen/jacoco.exec 12:32:35.152 INFO传感器JaCoCoSensor完成:1201 ms

这是我的属性:

project.home=SeqGen
sonar.projectKey=com.skyboximaging:seqgen
sonar.projectName="SeqGen"
sonar.projectVersion=1.0
sonar.dynamicAnalysis=true
sources=src/java
tests=test/java
binaries=classes
sonar.jacoco.reportPath=jacoco.exec
sonar.jacoco.antTargets=test-with-coverage
Run Code Online (Sandbox Code Playgroud)

在Sonar服务器上,我将常规设置>代码覆盖率>代码覆盖率插件设置为jacoco

我对http://docs.codehaus.org/display/SONAR/Code+coverage+plugins上的文档感到非常困惑. 我对这句话感到特别困惑:"在声纳分析过程中,Sonar Jacoco插件将注意附加Jacoco代理JVM并启动单元测试."

据我所知,我的Ant目标没有被调用.Sonar Jacoco插件如何知道在哪里找到我的build.xml?

我究竟做错了什么?

jenkins jacoco sonarqube

4
推荐指数
1
解决办法
2万
查看次数

使用Ant将JaCoCo集成到声纳中

我无法使用Ant将JaCoCo与声纳集成.这项任务非常新,并且是第一次集成.我经历过许多链接

我试图在另一个VM上显示结果,代码在我的VM中.获取与JDK6,VM相关的各种错误,并且无法分析我的包结构我需要在以上链接中为VM等定义任何特定的项目属性.我还想包括我的checkstyle,和findbugs一样工作就像魅力.只需要整合JaCoCo.任何信息都会有很大帮助.

如果发现我的描述不符合我的标记,请问

感谢帮助

ant jacoco sonarqube

4
推荐指数
1
解决办法
1万
查看次数

'one to many'属性值类型不应该是'persistence entity'

我有1个用户到多个其他域并将其放在我的代码中:

用户类

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotBlank;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

@Entity
@Table(name = "USUARIO")
public class Usuario {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ID_USUARIO",unique = true,nullable = false)
    private Long id;

    @NotBlank(message = "usuario.cadastro.nome.obrigatorio")
    @Column(name = "NOME", unique = true, nullable = false,length = 100)
    private String nome;

    @Email(message = "usuario.cadastro.email.invalido")
    @Column(name = …
Run Code Online (Sandbox Code Playgroud)

hibernate

3
推荐指数
2
解决办法
1万
查看次数