Java IntelliJ无法从本地Maven存储库加载源
我正在做一些测试工作,需要使用JUnit中我不熟悉的特性。为了更好地理解这些特性,我希望能够在我的项目旁边查看IntelliJ中的JUnit源代码 这个项目使用Maven。我的pom.xml文件中列出了jUnit的以下依赖项: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
朱尼特
朱尼特
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中复制这一点 以下是我解决问题的方法:
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的新版本中得到了解决。编辑:刚刚注意到您仍然遇到这个问题。如果你碰巧找到了问题的最终解决方案,那么请随意在这里发布你的答案,我会接受的!