Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java IntelliJ无法从本地Maven存储库加载源_Java_Maven_Intellij Idea - Fatal编程技术网

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

Java IntelliJ无法从本地Maven存储库加载源,java,maven,intellij-idea,Java,Maven,Intellij Idea,我正在做一些测试工作,需要使用JUnit中我不熟悉的特性。为了更好地理解这些特性,我希望能够在我的项目旁边查看IntelliJ中的JUnit源代码 这个项目使用Maven。我的pom.xml文件中列出了jUnit的以下依赖项: 朱尼特 朱尼特 4.10 当我在命令行上运行“mvn clean install”时,jUnit源代码将从我公司的Maven存储库下载到本地Maven存储库(.m2目录)。然后,项目将编译并运行,不会出现问题 右键单击pom.xml文件并选择Maven->Reimpo

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

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


朱尼特
朱尼特
4.10
当我在命令行上运行“mvn clean install”时,jUnit源代码将从我公司的Maven存储库下载到本地Maven存储库(.m2目录)。然后,项目将编译并运行,不会出现问题

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

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

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


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

我能够在Windows上的IntelliJ 16中复制这一点

以下是我解决问题的方法:

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

  • 我也有同样的问题。在我的案例中,我有两个本地开发的项目(项目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>
    
    
    org.apache.maven.plugins
    

    第二:在ProjectB根文件夹上运行:
    mvn源代码:jar
    ,然后是
    mvn安装
    。 第一个命令将生成源,第二个命令将在本地repo中发布它们


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

    您是如何发现这一点的?我确实按照这些说明进行了操作,并且本地Repo已过时。但即使在这些步骤之后,结果仍然是“无法下载源文件”,假设您还在pom.xml上的命令行上运行“mvn compile”步骤来更新repoyes,并且源文件已确认位于repo中,并且包含特定类。但是没有骰子。好吧,对你来说,是时候从头开始了。删除maven和IntelliJ安装。重新安装maven并使用source创建一个全新的项目。编译该文件,然后安装IntelliJ并重试。然后回到你最初的源项目。这个问题有一个很好的答案:考虑评论为什么/为什么它还没有被接受(如果它在处理你的帖子,就接受它),而@鹰眼所提供的答案是有帮助的。它并没有解决我的问题,也不够全面,不足以保证当时接受作为官方答案。这个问题也已经存在了几年,AFAIK已经在IntelliJ的新版本中得到了解决。编辑:刚刚注意到您仍然遇到这个问题。如果你碰巧找到了问题的最终解决方案,那么请随意在这里发布你的答案,我会接受的!