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

The*_*eLQ 11 java javadoc maven 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>
Run Code Online (Sandbox Code Playgroud)

跑了 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>
Run Code Online (Sandbox Code Playgroud)

嗯,奇怪的是没有输出.所以当我检查目标/网站时,它是空的.唯一的文件夹是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?

Rag*_*ram 12

也许你可以尝试使用Maven的网站插件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>
Run Code Online (Sandbox Code Playgroud)

  • 如果您希望这在Maven 2和3中都有效(这是使用我的CI服务器的要求),您需要将其放在配置文件中.我发现这个激活部分似乎给出了可行的结果:`<activation> <file> <exists> $ {basedir} </ exists> </ file> </ activation>` (2认同)

MrD*_*ews 8

我遇到了同样的问题.我发现了一篇关于这个主题的博客文章.

引用博客(强调我的):

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

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

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

一个行家-插件站点的部分解释他们移除了Maven的核心所有报告的逻辑为"解耦Doxia Maven的核心,并允许开发任意报告系统." 说得通.


Stu*_*rys 7

最终似乎解决了与Maven 3一起使用Site Plugin(http://maven.apache.org/plugins/maven-site-plugin/)的问题.(非beta)版本已经发布,并且<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>
Run Code Online (Sandbox Code Playgroud)

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