9

我的 Maven POM 使用

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>2.9</version>
    <configuration>
        <show>public</show>
        <failOnError>false</failOnError>
    </configuration>
</plugin>

在报告部分。一切似乎都很好,但在某些时候它会尝试生成依赖关系报告并且永远卡住,因为它无法访问存储库 URL(即未启动)。收到此错误:

[INFO] Generating "Dependencies" report    --- maven-project-info-reports-plugin:2.5.1
[WARNING] The repository url 'file://${basedir}/stage' is invalid - Repository 'local-mime4j-stage-repository' will be blacklisted.
[WARNING] The repository url 'http://antlr.org/antlr-snapshot' is invalid - Repository 'antlr-snapshot' will be blacklisted.

之后,它一直在等待,导致我没有构建。所以我的问题是如何告诉 javadoc 排除此步骤而不尝试生成依赖关系报告?

4

2 回答 2

14

http://www.java-tutorial.ch/maven/maven-site-build-slow-due-to-dependency-report-plugin很好地描述了如何从命令行或关闭依赖位置检查在你的 POM 文件中。

总结一下:

  1. 命令行:

    mvn -Ddependency.locations.enabled=false site
    
  2. 聚甲醛:

    <plugin>
      <artifactId>maven-project-info-reports-plugin</artifactId>
      <configuration>
         <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
      </configuration>
    </plugin>
    
于 2013-10-09T18:29:45.100 回答
5

实际上问题与 maven-javadoc-plugin 无关,但在阅读日志时似乎如此。它在运行站点生命周期时处于默认目标中。即使我删除了所有插件,我在运行 $mvn 站点时也会遇到这个问题。

这是因为站点生成试图获取有关我的项目依赖项的信息。似乎避免这种情况的最佳方法可能是通过将某些属性设置为 false 来禁用对这些信息的检索(因为某些存储库 url 无效)......但这样的事情对我来说真的没有用。只有以下工作:

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-project-info-reports-plugin</artifactId>
                    <version>2.6</version>
                    <reportSets>
                        <reportSet>
                            <reports>
                                <report>index</report>
                                <report>help</report>
                                <report>project-team</report>
                                <report>modules</report>
                                <report>plugins</report>
                                <report>cim</report>
                                <report>issue-tracking</report>
                                <report>scm</report>
                                <report>license</report>
                                <report>plugin-management</report>
                                <report>distribution-management</report>
                                <report>summary</report>
                                <report>mailing-list</report>
                                <report>issue-tracking</report>
                                <!--
                                <report>dependencies</report>
                                -->
                            </reports>
                        </reportSet>
                    </reportSets>
                </plugin>

这意味着,我告诉站点插件不要在站点中创建与我的依赖项相关的任何内容。您可以从网站的原始报告列表中看到,我只添加了我想要的报告。但是,如果您使用 maven-project-info-reports-plugin 寻找站点生成,许多人也会遇到关于构建花费太多时间以及如何解决它的问题。我希望这可以帮助下一个受害者。

于 2013-02-25T15:32:46.480 回答