Maven站点(Maven 3)生成空站点文件夹

时间:2011-01-12 23:21:29

标签: java maven javadoc maven-javadoc-plugin maven-site-plugin

我正在尝试使用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:sitemvn 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?

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:8)

我遇到了同样的问题。我找到了关于这个主题的blog post

引用博客(强调我的):

  

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

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

  

所以你基本上只是将旧的报告插件移动到新的maven-site-plugin的配置部分。

section of the maven-plugin-site解释说他们removed of all reporting logic from the core of Maven“将Maven核心与Doxia分离,并允许开发任意报告系统。”有道理。

答案 2 :(得分:7)

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

尽管(通常)难以浏览关于Maven 3和网站插件的实质性但无组织且重叠的文档,但是一页 - http://maven.apache.org/plugins/maven-site-plugin/maven-3.html - 表示现在推荐旧样式而不是新插件网站插件“style:

  

注意:在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,那么你可以在插件的版本部分使用代码完成来为你提供当前版本的列表。非常方便。