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

时间:2014-06-26 20:40:20

标签: java maven intellij-idea

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

这个项目使用Maven。对于我的pom.xml文件中列出的jUnit,我有以下依赖项:

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

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

右键单击pom.xml文件并选择Maven-&gt; Reimport后,我可以看到jUnit的类,源和javadoc也出现在IntelliJ的库设置中:

Sources visible in IntelliJ library settings

但是,当我尝试在IntelliJ中打开一个jUnit类文件并单击&#34; Download Sources&#34;链接我看到了这个:

Sources missing in IntelliJ when viewing class

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

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

2 个答案:

答案 0 :(得分:6)

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

以下是我如何解决它:

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

答案 1 :(得分:0)

我有同样的问题。就我而言,我有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。 第一个命令将生成源,第二个命令将源发布到您的本地存储库中。

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