繁体   English   中英

IntelliJ 无法从本地 Maven 存储库加载源

[英]IntelliJ cannot load sources from local Maven repository

我正在做一些测试工作,需要使用 JUnit 中我不熟悉的功能。 为了更好地理解这些功能,我希望能够在我的项目旁边查看 IntelliJ 中的 JUnit 源代码。

本项目使用 Maven。 我的 pom.xml 文件中列出了 jUnit 的以下依赖项:

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.10</version>
</dependency>

当我在命令行上运行“mvn clean install”时,jUnit 源代码从我公司的 Maven 存储库下载到我的本地 Maven 存储库(.m2 目录)。 该项目然后编译和运行没有问题。

右键单击 pom.xml 文件并选择 Maven->Reimport 后,我​​可以看到 jUnit 的类、源和 javadoc 也存在于 IntelliJ 的库设置中:

IntelliJ 库设置中可见的源

但是,当我尝试在 IntelliJ 中打开 jUnit 类文件并单击“下载源”链接时,我看到了:

查看类时 IntelliJ 中缺少源

似乎 IntelliJ 应该在本地找到这些来源就好了。 即使它确实必须从我公司的存储库下载它们,我也相信它应该在那里找到它们,因为那是我本地存储库中 junit-4.10-sources.jar 文件的最初来源。

什么可能阻止 IntelliJ 从它已经知道的 JAR 文件加载源代码?

我能够在 Windows 上的 IntelliJ 16 中复制它。

这是我解决它的方法:

  1. 选择文件 -> 设置 -> 构建、执行、部署 -> 构建工具 -> Maven -> 存储库
  2. 从列表中选择您的本地存储库(如果它不存在,则添加它)
  3. 单击“更新”按钮
  4. 单击确定
  5. 右键单击您的pom.xml文件并选择 Maven -> Reimport

我有同样的问题。 就我而言,我在本地开发了 2 个项目(项目 A 和 B),其中项目 B 是项目 A 的依赖项。我通过以下方式解决了它:

首先:在项目 B 上,将以下插件添加到您的 pom 文件中:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <version>3.2.0</version>
    <executions>
        <execution>
            <id>attach-sources</id>
            <phase>verify</phase>
            <goals>
                <goal>jar-no-fork</goal>
            </goals>
        </execution>
    </executions>
</plugin>

有关此插件的更多信息,请访问:https ://maven.apache.org/plugins/maven-source-plugin/usage.html

第二:在项目 B 根文件夹上运行: mvn source:jar后跟mvn install 第一个命令将生成源,第二个命令将在您的本地存储库中发布它们。

然后 IntelliJ 在项目 A 上自动从项目 B 中获取源代码。如果没有,那么您可能需要重新加载项目 A 上的项目依赖项或在根文件夹上运行mvn clean install

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM