GVKun编程网logo

将Sonar配置为从Maven pom.xml中排除文件(maven sonar:sonar)

13

本篇文章给大家谈谈将Sonar配置为从Mavenpom.xml中排除文件,以及mavensonar:sonar的知识点,同时本文还将给你拓展javamaven项目:pom.xml第一行报"org.ap

本篇文章给大家谈谈将Sonar配置为从Maven pom.xml中排除文件,以及maven sonar:sonar的知识点,同时本文还将给你拓展java maven 项目:pom.xml 第一行报 "org.apache.maven.archiver.MavenArchiver.getManifest、java – Maven:从JAR中排除“META-INF / maven”文件夹、java – Maven:在pom.xml中配置并行构建、java – 从Maven中的依赖中排除类等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

将Sonar配置为从Maven pom.xml中排除文件(maven sonar:sonar)

将Sonar配置为从Maven pom.xml中排除文件(maven sonar:sonar)

我在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>

但是,以上代码不起作用。有没有一种方法可以从我的pom.xml文件中配置SonarQube以在分析源代码时忽略那些文件?

先感谢您。

答案1

小编典典

声纳排除(如其他声纳属性)必须添加到<properties>
POM文件的部分。像这样(从当前项目中排除jOOQ自动生成的代码的示例):

<properties>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>    <sonar.host.url>http://www.example.com/</sonar.host.url>    <sonar.jdbc.url>jdbc:postgresql://www.example.com/sonar</sonar.jdbc.url>    <sonar.jdbc.driver>org.postgresql.Driver</sonar.jdbc.driver>    <sonar.jdbc.username>sonar</sonar.jdbc.username>    <sonar.jdbc.password>sonar</sonar.jdbc.password>    <sonar.exclusions>org/binarytherapy/generated/**/*, **/GuiceBindComposer.java</sonar.exclusions>    <sonar.dynamic>reuseReports</sonar.dynamic></properties>

java maven 项目:pom.xml 第一行报

java maven 项目:pom.xml 第一行报 "org.apache.maven.archiver.MavenArchiver.getManifest

新建 Maven 项目时,每个 pom 文件第一行都报错。

一。问题分析
创建 maven 项目时,每个 pom 文件第一行都报错

二。解决方案
1. 更新 eclipse 中的 maven 插件
1.1 Help -> Install New Software -> Add
1.2 Location 中输入
http://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-mavenarchiver/0.17.2/N/LATEST/
1.3 一路 Next,根据指示重启 Eclipse
2. 右键 maven 项目,Maven -> Update Project

三。父项目的 pom 文件第一行仍报错
1. 目前解决方案
1.1 右键父项目,Maven -> Disable Maven Nature
1.2 右键父项目,Configure -> Convert to Maven Project

 

java – Maven:从JAR中排除“META-INF / maven”文件夹

java – Maven:从JAR中排除“META-INF / maven”文件夹

我使用 Maven来构建JAR.当我检查JAR时,我在meta-inf文件夹中看到了一个maven文件夹.我希望它从构建中排除.我在pom.xml中的当前构建代码如下所示:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>Libraries</classpathPrefix>
                        <mainClass>com.company.Main</mainClass>
                    </manifest>
                    <manifestEntries>
                        <Built-By>Me</Built-By>
                    </manifestEntries>
                </archive>
                <!-- <excludes>
                    <exclude>meta-inf/maven/**</exclude>
                </excludes> -->
            </configuration>
        </plugin>
        <!-- ...more plugins... -->
    </plugins>
</build>

我读到使用排除标记允许您排除某些内容,但它不起作用.也许这只是指本地文件/文件夹? maven文件夹不是源代码的一部分,它只是由Maven添加的.

This回答有点工作但是使用了不同的工件,因此当我将它粘贴到我的pom.xml中时会生成第二个JAR.我想使用我当前的构建代码并排除maven文件夹,如上所述.如何使用maven构建规则完成?

解决方法

maven-jar-plugin使用maven-archiver来处理包装.它提供配置addMavendescriptor,默认情况下为true.将其设置为false应删除meta-inf / maven目录.

...
<archive>
   <addMavendescriptor>false</addMavendescriptor>
   ....
</archive>

你可以找到参考here.

java – Maven:在pom.xml中配置并行构建

java – Maven:在pom.xml中配置并行构建

Maven具有执行并行构建的能力:
https://cwiki.apache.org/confluence/display/MAVEN/Parallel+builds+in+Maven+3
mvn -T 4 clean install # Builds with 4 threads
mvn -T 1C clean install # 1 thread per cpu core
mvn -T 1.5C clean install # 1.5 thread per cpu core

是否可以在pom.xml或settings.xml中指定此参数?重复这个选项可能很烦人.

解决方法

我找不到在pom.xml或settings.xml中配置它的方法在unix系统上有一个很好的解决方案,编辑你的.bashrc并添加一个别名.
alias mvnp='mvn -T 4'

现在从终端运行maven使用mvnp

mvnp clean install

java – 从Maven中的依赖中排除类

java – 从Maven中的依赖中排除类

我有一个项目,依赖于一个由供应商控制的工件.这个工件包含一些我依赖的类,一些是旧的,导致问题.有没有办法让maven自动扩展jar,删除类,并重新打包它们作为依赖关系?我会举个例子.
supplier:artifact:1.0.0
com.supplier.useful.ClassA
com.supplier.dto.ClassB (old)

us:dependency:1.1.20
com.supplier.dto.ClassB (new)

us:project-web:1.1.20
- supplier:artifact:1.0.0
- us:dependency:1.1.20

所以 – 我需要在project-web中使用ClassA,但是我需要使用依赖性工件的ClassB.我不能修改供应商:artifact或我们:依赖.

有任何想法吗?!

解决方法

自2.0.9版本以来,maven保留了类路径的顺序,因此如果在jar中定义了修补的类,那么它将隐藏供应商的实现.

或者,您可以看看maven shade plugin,因为它正是您根据我的要求.

关于将Sonar配置为从Maven pom.xml中排除文件maven sonar:sonar的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于java maven 项目:pom.xml 第一行报 "org.apache.maven.archiver.MavenArchiver.getManifest、java – Maven:从JAR中排除“META-INF / maven”文件夹、java – Maven:在pom.xml中配置并行构建、java – 从Maven中的依赖中排除类的相关信息,请在本站寻找。

本文标签: