11

我正在尝试使用 Maven 站点插件创建一个基本的 Maven 站点。所以我把这个添加到我的 pom 中:

<reporting>
    <plugins>
        <!--JavaDoc setup-->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.7</version>
            <configuration>
                <defaultAuthor>Leon Blakey</defaultAuthor>
                <defaultVersion>${project.version}</defaultVersion>
                <links>
                    <link>http://download.oracle.com/javase/6/docs/api</link>
                </links>
            </configuration>
        </plugin>
    </plugins>
</reporting>

然后跑了mvn site --errors

[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building pircbotx 1.3-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-site-plugin:2.0.1:site (default-site) @ pircbotx ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.688s
[INFO] Finished at: Wed Jan 12 18:08:00 EST 2011
[INFO] Final Memory: 5M/13M
[INFO] ------------------------------------------------------------------------
W:\programming\pircbot-hg>

嗯,奇怪的是没有输出。所以当我检查目标/站点时,它是空的。唯一的文件夹是 images/ 、 css/ 和 WEB-INF/ ,其中填充了一些通用图片。没有 javadoc 也没有站点。

这可以用mvn site:siteand重现mvn org.apache.maven.plugins:maven-site-plugin:2.2:site(显然 maven 默认只想使用 2.0.1)

奇怪的是,我可以回到 maven 2.2.1 并成功生成站点。但是当我使用 3.0.1-RC1(恰好与 Netbeans 一起提供)时,它失败了。

我做错了什么会导致站点插件在 3.0.1 而不是 2.2.1 中失败?

4

3 回答 3

12

也许您可以尝试使用Maven Site Plugin 3.x。您可以通过在 pom.xml 中添加以下内容来做到这一点

<build>
    ...
    <plugins>
        ...
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>3.0-beta-3</version>
        </plugin>
    </plugins>
</build>
于 2011-01-13T08:46:37.083 回答
8

我遇到了同样的问题。我找到了一篇关于该主题的博客文章。

引用博客(强调我的):

如果您一直在使用 pom.xml 文件的报告部分来生成代码质量指标、javadoc 报告等,那么您可能需要做一些工作才能将此功能迁移到 Maven 3。确实,报告和报告集部分已被弃用(它不会导致 Maven 3 出错,只会被忽略),并已被 maven-site-plugin 本身的配置块中的 reportPlugins 部分替换。

在没有任何关于它被弃用的警告的情况下忽略旧<reporting>的似乎有点粗鲁,但无论如何......

因此,您基本上只是将旧的报告插件移动到新的 maven-site-plugin 的配置部分。

maven-plugin-site 的一部分解释说,他们从 Maven 核心中删除了所有报告逻辑,以“将 Maven 核心与 Doxia 分离,并允许开发任意报告系统”。说得通。

于 2011-08-19T22:23:21.620 回答
7

在 Maven 3中使用站点插件 ( http://maven.apache.org/plugins/maven-site-plugin/ ) 似乎终于得到了解决。(非测试版)版本已经发布,并且<reporting>添加了在 pom.xml 声明中使用版本 2 样式结构的能力。

尽管(像往常一样)很难浏览关于 Maven 3 和站点插件的大量但无组织且重叠的文档,但只有一页 - http://maven.apache.org/plugins/maven-site-plugin/maven-3。 html - 表示现在建议使用旧样式而不是新的“插件到站点插件”样式:

注意:在 Maven 3 中,新格式不支持报告插件配置继承:参见 MSITE-484。这种格式在技术上是从 Maven 3 中删除报告逻辑所必​​需的,但是仍然需要向 Maven 3 添加新的继承机制以使其与旧格式一样灵活。因此,新格式目前还不能直接使用。

用于配置报告的示例页面http://maven.apache.org/plugins/maven-site-plugin/examples/configuring-reports.html甚至没有提到“新”格式化方法。

不确定这是否是“最佳实践”形式,但一个对我有用的示例 pom 报告部分与几个额外的报告如下;根据需要选择您自己的插件。

    ...
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.0</version>
          </plugin>
       </plugins>
    </build>

    <reporting>
        <plugins>

            <!-- Default Site Pages -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>2.4</version>
            </plugin>

            <!-- Java Documentation -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.8</version>
            </plugin>

            <!-- Source Code Cross-Reference -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jxr-plugin</artifactId>
                <version>2.3</version>
            </plugin>
            ...
        </plugins>
    </reporting>

顺便说一句,如果您在 Eclipse 中使用 m2e 插件来编辑您的 POM,那么您可以在插件的版本部分使用代码完成来为您提供其当前版本的列表。非常便利。

于 2012-01-22T21:48:35.557 回答