Maven中的pluginManagement范围和reporting.plugins.plugin.version缺少警告

Mif*_*eet 1 java plugins maven jacoco-maven-plugin

我的Maven项目给了我report.plugins.plugin.version这样的警告:

[WARNING] Some problems were encountered while building the effective model for com.example:test:jar:1.0-SNAPSHOT
[WARNING] 'reporting.plugins.plugin.version' for org.jacoco:jacoco-maven-plugin is missing. @ line 10, column 21
Run Code Online (Sandbox Code Playgroud)

我知道Maven 3 对插件版本更严格,必须指定插件版本.我在pluginManagement中指定了该版本:

<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.7.2.201409121644</version>
        </plugin>
    </plugins>
</pluginManagement>
Run Code Online (Sandbox Code Playgroud)

当我使用插件时,这工作正常,没有警告build/plugins:

<build>
    <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

但是,它不起作用reporting/plugins:

<reporting>
    <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
        </plugin>
    </plugins>
</reporting>
Run Code Online (Sandbox Code Playgroud)

我的问题是:指定的版本范围是否build/plugingManagement仅限于<build>标签内?我可以修复警告而不在两个地方复制插件版本吗?


以下是生成警告的完整示例:

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>test</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
            </plugin>

        </plugins>
    </reporting>


    <build>
        <plugins>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
            </plugin>
        </plugins>

        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>0.7.2.201409121644</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>
Run Code Online (Sandbox Code Playgroud)

小智 6

这似乎是较旧的maven版本中的一个错误.看看apache 上的这个bug票.

.尝试使用Maven 3和maven-site-plugin-3.

  • 是的,我使用的是Maven 3.0.5,根据bug票据修复了3.1.0中的错误.谢谢! (3认同)