如何在Maven <reporting>插件中排除依赖项?

时间:2015-08-03 19:08:12

标签: java maven dependencies reporting pom.xml

如何从报告Maven插件中排除依赖项? cobertura-maven-plugin恼人地引入ch.qos.logback:logback-classic,这会在构建和运行期间导致多个SLF4J绑定警告。我尝试将带有<dependencies>的{​​{1}}插入到插件中,但由于某些原因maven不允许在<exclusions>部分中插入<reporting>。任何帮助表示赞赏。相关的POM如下。

<reporting>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-project-info-reports-plugin</artifactId>
            <version>2.8</version>
            <configuration>
               <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>cobertura-maven-plugin</artifactId>
            <version>2.7</version>
            <configuration>
                <formats>
                    <format>html</format>
                    <format>xml</format>
                </formats>
            </configuration>
        </plugin>
    </plugins>
</reporting>

2 个答案:

答案 0 :(得分:0)

这已经过时但我会给出我的解决方案以防其他人有这个问题。在我的poms中,我插入了以下内容

          <dependencies>
                <dependency>
                    <groupId>ch.qos.logback</groupId>
                    <artifactId>logback-classic</artifactId>
                    <version>1.1.7</version>
                </dependency>
            </dependencies>

在我的Cobertura插件的定义中。 Cobertura无论如何都在使用1.1.7(在我的情况下)检查你的工件以确认,你只需要在创建插件时明确告诉maven拉那个版本,否则它仍然会拉出冲突的版本并显示错误

答案 1 :(得分:0)

我已经解决了这个问题,包括&#34;范围&#34;在logback依赖项中标记。

这是我的POM部分:

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${logback-classic-version}</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>${logback-core-version}</version>
        <scope>runtime</scope>
    </dependency>