【问题标题】:Skip Dependencies in javadocs - Maven javadoc stuck because of invalid repository URL跳过 javadocs 中的依赖项 - Maven javadoc 由于存储库 URL 无效而卡住
【发布时间】:2013-02-13 14:19:54
【问题描述】:

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

【问题讨论】:

  • 你正在运行什么 mvn 命令?并且您可以使用 -X 运行它以获取有关正在发生的事情的详细信息吗?顺便说一句,没有错误......这只是警告;-)

标签: maven reporting javadoc


【解决方案1】:

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>
    

【讨论】:

  • 请注意,除非您在 project.reporting.plugins 文件的 project.reporting.plugins 子部分而不是 project.build.plugins 子部分中指定 maven-project-info-reports-plugin,否则这将不起作用。
【解决方案2】:

其实这个问题和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-07-04
  • 1970-01-01
  • 2017-01-23
  • 1970-01-01
  • 2021-12-07
  • 2012-01-10
  • 2011-03-26
  • 2021-05-14
  • 1970-01-01
相关资源
最近更新 更多