【问题标题】:Eclipse doesn't find source attachementsEclipse 找不到源附件
【发布时间】:2011-09-06 01:58:30
【问题描述】:

当打开一个通过 Maven 依赖项包含的类时,Eclipse 告诉我包含的 .jar 文件没有源附件。

但是在.jar文件所在的目录下,也有对应的-sources.jar文件。

你对这个问题的解决有什么提示吗?

有没有办法告诉 Eclipse 它应该在哪里自动查找源附件?

编辑:在 Eclipse .classpath 文件中,sourcepath 值是为外部存档设置的,但不是我们的。但是jars 和源文件都驻留在同一个仓库中。

属性-Declipse.useProjectReferences=false 也已设置。

【问题讨论】:

  • similar 可能有帮助的问题
  • 无重复。我得到了一些 JAR 的来源,但不是全部。奇怪的是,我没有得到的那些也在我的本地存储库中。
  • 您是否创建了源 jar 包?您是否曾经在本地存储库中查看(解压缩)您没有得到的源 jar?是好的还是坏了?
  • 我也得到了这个,通过在存储库中打开一个随机类并刷新它,它会加载源代码并出于某种奇怪的原因工作。任何随后在 Eclipse 中单击 maven 存储库中的类都会正确显示源代码。

标签: eclipse maven maven-2


【解决方案1】:

检查 pom.xml 的 maven-eclipse-plugin 部分中是否有 downloadSources:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-eclipse-plugin</artifactId>
    <configuration>
        <downloadSources>true</downloadSources>
        <downloadJavadocs>true</downloadJavadocs>
        ...
    </configuration>
</plugin>

【讨论】:

    【解决方案2】:

    如果您使用 m2eclipse 插件在 Eclipse 中集成 Maven 项目,您可能需要在 m2eclipse 首选项中启用下载源代码和 javadocs:

    窗口 > 首选项 > Maven > 下载工件源

    【讨论】:

      【解决方案3】:

      问题是我的本地存储库中的某些项目已经有 sources.jar-not-available 文件。

      我已经删除了它们,现在源文件的附件正在工作。显然,只要这些标记文件存在,Eclipse 和Maven Eclipse plugin 就不会寻找源附件。

      如果不是来自K. Claszen 的评论,我永远不会想出这个解决方案。

      【讨论】:

      • 这些文件在哪里?
      【解决方案4】:

      右键单击项目,选择 Maven,选择下载源代码。

      【讨论】:

        【解决方案5】:

        对我来说,该文件已在本地 repo 中就位,而 eclipse (4.5) 一直抱怨没有关联的源 jar (sources.jar-not-available 不存在)。我最终从本地 repo 中删除了目录,让 eclipse 再次下载源代码并重新填充 repo,运行 mvn eclipse:eclipse 并刷新项目。

        对我来说,所有这些步骤都是完成这项工作所必需的。

        【讨论】:

          【解决方案6】:

          我从网上下载了一个 maven 项目,使用 mvn eclipse:eclipse 转换为 eclipse 项目然后我出现了问题。

          解决方案是删除所有以“M2_REPO”开头的外部库,这对我有用。

          【讨论】:

            【解决方案7】:

            对于那些仍然无法下载 Maven 依赖项的源的人(例如我),您可以尝试以下替代方法:

            1. 找到您希望检查 Java 源代码的特定 Maven 依赖项。您需要拥有 Maven 工件名称。
            2. 接下来,导航到您从中下载 Maven 依赖项的 Maven 存储库服务器。例如,我有 spring-security-core-5.5.1.jar 作为我的 Maven 依赖项。仓库宿主站点来自mvnrepository.com,其中仓库服务器来自https://repo1.maven.org/maven2/
            3. 导航到mvnrepository.com 并搜索您的 Maven 依赖项工件。在我的例子中,它是spring-security-core,我在这里找到了artifact information page
            4. 在此页面上,在标有 Files 的表格行中,您要单击 JAR 链接右侧的 View All,旁边显示多少千字节。 (下划线)

            1. 查看所有随 Maven 依赖项提供的 JAR 列表后,单击并下载标有 [artifact name]-[artifact version]-sources.jar 的 JAR。就我而言,它是spring-security-core-5.5.1-sources.jar
            2. 下载后,在您的本地计算机上,使用文件资源管理器导航到包含您无法下载其源代码的工件 JAR 的文件夹。就我而言,应该是$MAVEN_HOME/repository/org/springframework/security/spring-security-core/5.5.1
            3. [artifact name]-[artifact version]-sources.jar 移动到此文件夹中。
            4. 返回 Eclipse,并尝试附加源代码。附上...-sources.jar 文件后,您应该可以找到它。

            附加后,您将能够看到您的 Maven 依赖项的源代码。

            【讨论】:

              猜你喜欢
              • 2016-03-27
              • 2014-03-20
              • 1970-01-01
              • 2018-05-02
              • 2011-12-23
              • 2014-02-01
              • 2010-12-29
              • 2012-07-04
              • 1970-01-01
              相关资源
              最近更新 更多