vscode阅读springboot源码、开发springboot

当你苦恼于IEDA因为种种原因在公司不能使用时,vscode不失为一个替代方法。

1 vscode spring boot 开发环境搭建

根据vscode官方文档里面的介绍,下载如下插件就行了(前提你自己的电脑有jdk并配置了JAVA_HOME)。
vscode官网 为Java设置开发环境
Java插件:Extension Pack for Java
spring boot插件:Spring Boot Extension Pack

2 maven环境设置(有坑)

我根据vscode官方文档,设置了maven配置文件的位置,插件是Extension Pack for Java里面的Maven for Java

vscode官网 设置Maven

设置完,Maven for Java这个插件会检查当前工作文件夹下面的所有pom文件,自动导入maven工程,到这一步都没问题,我用springboot插件包里的Spring Initializr创建了一个springboot工程,侧边栏也有springboot dashboard可以直接启动springboot程序。

当你完成上面两个步骤,看起来已经完成了vscode springboot开发环境的搭建。为什么说这里有坑,在学习源码的时候,我就发现了这个坑。

3 继续深入学习spring boot源码

当我想点开一个spring boot的类,跟着学习源码的时候发现,斯唉,怎么看不到源码,

查看定义之后跳转的每个文件(发现后缀是.class)都有这样的注释

// Failed to get sources. Instead, stub sources have been generated by the disassembler.  
// Implementation of methods is unavailable.

我就知道应该是maven工程没有下载源码,然后我就转到Maven for Java这个插件的拓展设置里面,给Maven › Executable: Options加了一个 dependency:sources 这个命令,更新了maven工程,日志有下载新的文件,本地仓库里也有的带sources后缀的jar包,然后不管怎么重启vscode,就是看不到springboot源码!!!

然后就百度搜啊搜,搜到这样一篇文章Java避坑指南!IDEA查看.class文件源码下载失败问题汇总

我在vscode里面也找到了一个反编译插件:Java Decompiler,确实可以看到源码了,不过文章最后有个人评论:“这只是反编译的结果啊 源码还是没下载 很多方法的实现和注释还是看不到的”

觉得使用Java Decompiler插件还是不妥,没有解决根本问题。

到这一步就不得不提设置maven的时候的坑了,因为我是自己安装的maven,使用的也是自己定义的maven settings.xml,maven的本地仓库和设置文件都不在默认目录:~/.m2/settings.xml

然后我就想到了vscode解析Java的插件好像不是Maven for Java,而是另外一个Language Support for Java™ by Red Hat的插件。

前面我在导入maven工程到vscode的时候就发现很慢,然后maven的下载地址也不是我设置的镜像地址(明明在Maven for Java插件设置了指定的配置文件),我就觉得配置文件应该没有设置对,为了验证我的想法,我打开了vscode侧边栏的Java projects,展开maven dependencies,发现所有的依赖包跟maven工程的依赖路径不一样,是默认用户目录。到这我真是离了个大谱!!!!!!!

然后赶紧看了看Language Support for Java™ by Red Hat的插件的设置选项,搜索了maven相关的设置,还真TM有,Java › Configuration › Maven: Global Settings,指定为自定义的maven设置文件路径,更新下工程,就可以阅读springboot源码了。

不过文档里面微软都是用的默认用户目录,没有我这些配置文件不同步的pishi。

你可能感兴趣的:(spring,boot,java,vscode,ide)