maven项目无法查看类库的源码

时间:2021-05-15 11:20:41

一个Maven项目有两种类库,分别是JRE System Libaray和Maven Dependencies。

maven项目无法查看类库的源码

 

 

JRE System Libaray 一般有两种方法指定。

1、由pom.xml中的maven-compiler-plugin插件指定。

            <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<encoding>utf-8</encoding>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>

 

2、由项目的Properties指定。

Properties - Java Build Path > Libraries 改成Workspace default JRE

(其中这个Workspace default JRE一般在配置eclipse的时候,指定成本地JDK路径)

Properties - Java Compiler > Enable project specific settings 不勾选

 

一般情况下,maven项目总是会配置maven-compiler-plugin,否则项目时常会出现一些版本上的错误,

所以只考虑第一个方法。

 

第一种方法使用的JRE System Libaray,显示为JavaSE-1.8,

展开树状图,可以发现虽然指向的确实是本地Java的安装路径,但是仅仅只有jre目录下的jar文件。

所以需要为rt.jar指定源码和Javadoc

Properties - Java Build Path > Libraries - Java System Library [JavaSE-1.8] - rt.jar - Source attachment: 指定为本地JDK目录下的src.zip

Properties - Java Build Path > Libraries - Java System Library [JavaSE-1.8] - rt.jar - Javadoc location: 指定为https://docs.oracle.com/javase/8/docs/api/

 

Maven Dependencies

如果为Maven设置了链接速度较快的国内镜像站的话,很难出现无法查看maven依赖中的源码。

一旦出现了,右键项目 Maven - Download Sources 和 Download JavaDocs 即可。

 

此外,有些JDK的类是属于Java的核心组件,是不提供源码的,所以自然提示“Source not found”了,比如

sun.reflect.NativeMethodAccessorImpl