一个Maven项目有两种类库,分别是JRE System Libaray和Maven Dependencies。
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