我正在做一些测试工作,需要使用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的库设置中:
但是,当我尝试在IntelliJ中打开一个jUnit类文件并单击&#34; Download Sources&#34;链接我看到了这个:
似乎IntelliJ应该在本地找到这些来源。即使它必须从我公司的存储库下载它们,我也相信它应该在那里找到它们,因为我的本地存储库中的junit-4.10-sources.jar文件最初来自。
什么可能阻止IntelliJ加载它已经知道的JAR文件中的源?
答案 0 :(得分:6)
我能够在Windows上的IntelliJ 16中复制它。
以下是我如何解决它:
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