Maven的网站生成无效

Dav*_*rst 5 maven maven-site-plugin

有没有得到mvn网站输出的人?我在Macbook pro上获得了网站输出,我也部署了网站.但今晚没有任何作品:

[INFO] --- maven-site-plugin:2.0.1:site(default-cli)@svs-utility ---

没有生成报告或HTML

sti*_*vlo 11

我认为,根据Raghuram的建议,你已经想到了,但是,我今天看到了这个问题并且我遇到了同样的问题.我正在学习Maven,我想在这里记录我的步骤,因为它可能对其他人有用.我正在运行Maven 3.0.1并且它使用的是插件的2.0.1版本无效.

我在stackoverflow上发现了另一个问题,解释了如何升级Maven插件.

正如@andri所说:

默认插件版本继承自Super POM,您可以使用mvn help:effective-pom进行检查.

我检查了它确实使用2.0.1 - 我在http://search.maven.org/上搜索了最新版本的网站插件,在撰写本文时是3.0-beta-3(UPDATE 3.0已经出来了,我已更新下面的代码).

但是@andri的答案并不像超级POM那样报告正确的结构,而@Brian Fox的答案却是如此.结合两个答案和Maven仓库中的信息,我将以下内容添加到我的pom.xml中

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.0</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>
Run Code Online (Sandbox Code Playgroud)

有了这个改变,"mvn网站"现在有效.

现在有人可能会问,为什么Maven 3会附带一个无效的插件.事实证明,Maven开发人员Brian Fox决定将插件锁定到版本2.一般来说,这对于稳定性来说似乎是一个好主意,但是由于后向兼容性不受尊重,因此在这种特定情况下它变得非常糟糕.超级pom中的插件应该可以为它打包的版本开箱即用.应提供向后兼容性,或者应将其更新为新版本.

也许它会在以后修复,同时上面的解决方法有效.将插件版本锁定到特定项目也是一个好主意.