[英]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 中打开 jUnit 类文件并单击“下载源”链接时,我看到了:
似乎 IntelliJ 应该在本地找到这些来源就好了。 即使它确实必须从我公司的存储库下载它们,我也相信它应该在那里找到它们,因为那是我本地存储库中 junit-4.10-sources.jar 文件的最初来源。
什么可能阻止 IntelliJ 从它已经知道的 JAR 文件加载源代码?
我能够在 Windows 上的 IntelliJ 16 中复制它。
这是我解决它的方法:
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.