跳过javadocs中的依赖关系 - 由于存储库URL无效,Maven javadoc卡住了

时间:2013-02-13 14:19:54

标签: maven reporting javadoc

My 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排除这一步而不尝试生成依赖报告?

2 个答案:

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

    <plugin>
      <artifactId>maven-project-info-reports-plugin</artifactId>
      <configuration>
         <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
      </configuration>
    </plugin>
    

答案 1 :(得分: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寻找网站生成,很多人也会遇到这样的问题:构建需要花费太多时间以及如何解决它。我希望这有助于下一个受害者。