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

一个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

原文地址:https://www.cnblogs.com/deolin/p/7257018.html