Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 配置Sonar以从Maven pom.xml中排除文件_Java_Xml_Maven_Sonarqube - Fatal编程技术网

Java 配置Sonar以从Maven pom.xml中排除文件

Java 配置Sonar以从Maven pom.xml中排除文件,java,xml,maven,sonarqube,Java,Xml,Maven,Sonarqube,我在maven中配置了一个项目,代码分析由SonarQube完成 我试图在pom.xml文件中配置SonarQube,以便从代码分析中排除一些文件。这些文件可以通过它们的类名来识别,它们在扩展名之前包含下划线字符(它们是元模型类)。下面是pom.xml文件中我试图排除它们的部分: <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>sonar-maven-plugin&

我在maven中配置了一个项目,代码分析由SonarQube完成

我试图在pom.xml文件中配置SonarQube,以便从代码分析中排除一些文件。这些文件可以通过它们的类名来识别,它们在扩展名之前包含下划线字符(它们是元模型类)。下面是pom.xml文件中我试图排除它们的部分:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>sonar-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
        <sonar.sources>src/main/java</sonar.sources>
        <sonar.exclusions>file:**/src/main/java/**/*_.*</sonar.exclusions>
    </configuration>
</plugin>

org.codehaus.mojo
声纳maven插件
2.2
src/main/java
文件:*/src/main/java/***\*
但是,上述代码不起作用。有没有办法从pom.xml文件中配置SonarQube,以便在分析源代码时忽略这些文件

提前感谢。

POM文件的声纳排除(与其他声纳属性一样)。与此类似(从当前项目中排除jOOQ自动生成代码的示例):


UTF-8
http://www.example.com/
jdbc:postgresql://www.example.com/sonar
org.postgresql.Driver
声纳
声纳
org/binarytherapy/generated/***,***/GuiceBindComposer.java
再利用报告

中提到的类/包从声纳的所有静态分析中排除给定的类,但是
仅从覆盖范围中排除给定的类/包,并且仍然需要分析其他参数

<properties>
    <sonar.coverage.exclusions>
        **/domain/**/*,
        **/pojos/*
    </sonar.coverage.exclusions>
</properties>

**/域/***,
**/波乔/*
参考:

资料来源:


在按照公认答案进行声纳排除时,请确保遵循以下模式:

相对路径基于组件的完全限定名称(如下所示):

示例

# Exclude all classes ending with "Bean"
# Matches org/sonar.api/MyBean.java, org/sonar/util/MyOtherBean.java, etc.
**/*Bean.java

# Exclude all classes in the "src/main/java/org/sonar" directory
# Matches src/main/java/org/sonar/MyClass.java, src/main/java/org/sonar/MyOtherClass.java
# But does not match src/main/java/org/sonar/util/MyClassUtil.java
src/main/java/org/sonar/*

# Exclude all files in the "bank" directory and its sub-directories
# Matches bank/ZTR00021.cbl, bank/data/CBR00354.cbl, bank/data/REM012345.cob
bank/**/*

# Exclude all COBOL programs in the "bank" directory and its sub-directories whose extension is .cbl
# Matches bank/ZTR00021.cbl, bank/data/CBR00354.cbl
bank/**/*.cbl
因此,如果要排除以“Bean”结尾的所有类以及“src/main/java/org/sonar”目录(但不在其子目录中)中的所有类,请将以下
sonar.excludes
属性添加到pom的
属性中:

<properties>
  ...
  <sonar.exclusions>**/*Bean.java,src/main/java/org/sonar/*</sonar.exclusions>
</properties>

...
**/*java,src/main/java/org/sonar/*

我用声纳分析PHP代码库。
都没有奏效。 我的解决方案是-我没有指定排除项,而是指定了包含目录,如下所示:

<properties>
  .........
  <sonar.exclusions>./app/models,./app/controllers</sonar.exclusions>
  .........
</properties>

.........
./app/型号,./app/控制器
.........
我们必须在maven settings.xml文件中添加以下代码


声纳
真的
http://localhost:9000
#排除同一包下的更多类
src/main/java/co/domain/*,
src/main/java/co/util/JsonMapper.java
#排除个别类别
src/main/java/co/util/ProviderCallBuilder.java

有三种方法。

1) You can add these files to the properties in your pom.xml: This one is to exclude from code duplication:

<properties>
        <sonar.cpd.exclusions>
            **/dto/**/*,
            **/entity/**/*
        </sonar.cpd.exclusions>
</properties>

2)Using pom.xml We can also define exclusion rules in the pom.xml file using analysis properties.

<properties>
        <sonar.issue.ignore.multicriteria>e1</sonar.issue.ignore.multicriteria>
        <sonar.issue.ignore.multicriteria.e1.ruleKey>
          java:S4784
        </sonar.issue.ignore.multicriteria.e1.ruleKey>
        <sonar.issue.ignore.multicriteria.e1.resourceKey>
          **/commons/**/*
        </sonar.issue.ignore.multicriteria.e1.resourceKey>
</properties>

3) Using sonar-project.properties
We can also define exclusion rules in the sonar-project.properties file using analysis 
properties.Let's define and add the sonar-project.properties file to our resource dir:

sonar.issue.ignore.multicriteria=e1
sonar.issue.ignore.multicriteria.e1.ruleKey=java:S106
sonar.issue.ignore.multicriteria.e1.resourceKey=**/SonarExclude.java
1)您可以将这些文件添加到pom.xml中的属性中:此文件用于排除代码重复:
**/dto/***,
**/实体/**/*
2) 使用pom.xml,我们还可以使用分析属性在pom.xml文件中定义排除规则。
e1
java:S4784
**/公地/**/*
3) 使用sonar-project.properties
我们还可以使用analysis在sonar-project.properties文件中定义排除规则
属性。让我们定义sonar-project.properties文件并将其添加到资源目录:
sonar.issue.ignore.multicriteria=e1
sonar.issue.ignore.multicriteria.e1.ruleKey=java:S106
sonar.issue.ignore.multicriteria.e1.resourceKey=**/SonarExclude.java

SonarQube配置参数被视为“系统属性”,如果我没记错的话。您是否尝试过在pom.xml中将它们设置为全局的?当字符串很快变长时,指定许多排除项的最佳选项是什么?您可以将其放在多行上;在每个逗号之后都有一个换行符。com/vedant/pt/request/*.java我将其添加到pom属性中,并且不排除该包下的类。如果您想排除包下的所有类,您可能应该像我的示例中那样执行
/***
,我们将非常感谢您的帮助。您可以在此处阅读有关Ant样式路径匹配的更多信息:@MikkelLøkke-有没有任何方法可以禁用
pom.xml
文件中的特定规则?我无法在sonar中禁用它,因为它在组织级别使用。在版本6.5中,如果在每个条目之间添加新行,则会出现错误。请注意,这将从所有静态分析和代码覆盖范围中排除匹配的文件。此外,多个匹配器之间需要逗号。您好,欢迎光临。请考虑增加更多信息。
<properties>
  .........
  <sonar.exclusions>./app/models,./app/controllers</sonar.exclusions>
  .........
</properties>
       <profile>
                <id>sonar</id>
                <activation>
                    <activeByDefault>true</activeByDefault>
                </activation>     
           <properties>
               <sonar.host.url>http://localhost:9000</sonar.host.url>

               <sonar.exclusions>
               # exclude more class under same package
                  src/main/java/co/domain/*,
                  src/main/java/co/util/JsonMapper.java

               # exclude individual class
                  src/main/java/co/util/ProviderCallBuilder.java
               </sonar.exclusions>
            </properties>
       </profile>
1) You can add these files to the properties in your pom.xml: This one is to exclude from code duplication:

<properties>
        <sonar.cpd.exclusions>
            **/dto/**/*,
            **/entity/**/*
        </sonar.cpd.exclusions>
</properties>

2)Using pom.xml We can also define exclusion rules in the pom.xml file using analysis properties.

<properties>
        <sonar.issue.ignore.multicriteria>e1</sonar.issue.ignore.multicriteria>
        <sonar.issue.ignore.multicriteria.e1.ruleKey>
          java:S4784
        </sonar.issue.ignore.multicriteria.e1.ruleKey>
        <sonar.issue.ignore.multicriteria.e1.resourceKey>
          **/commons/**/*
        </sonar.issue.ignore.multicriteria.e1.resourceKey>
</properties>

3) Using sonar-project.properties
We can also define exclusion rules in the sonar-project.properties file using analysis 
properties.Let's define and add the sonar-project.properties file to our resource dir:

sonar.issue.ignore.multicriteria=e1
sonar.issue.ignore.multicriteria.e1.ruleKey=java:S106
sonar.issue.ignore.multicriteria.e1.resourceKey=**/SonarExclude.java