mac用idea阅读源码 带测试

背景

网络上的阅读源码方式都是借助idea导入source文件,这种方式没法运行测试代码,周末有空研究了一下怎么导入jdk源码到idea,运行测试,分享如下

ps. 这个教程主要面向JDK9以上,因为JDK9以上是模块化,不能用idea直接导入

需要:

  1. 需要2021.1版本以上的idea
  2. https://git.openjdk.java.net/jdk/
  3. git@github.com:openjdk/jtreg.git

本地编译源码

因为我是先编译了再导入源码的,其实用普通发行的java作为阅读源码的SDK也是可以的,嫌麻烦可以下载源码后直接sh bin/idea.sh 然后就可以直接导入idea,再跳到运行测试代码那段。

具体编译步骤直接摘抄官网了,补充说明放步骤后面了

  1. Get the complete source code:
    git clone https://git.openjdk.java.net/jdk/

  2. Run configure:
    bash configure

    If configure fails due to missing dependencies (to either the
    toolchain, build tools, external libraries or the boot JDK),
    most of the time it prints a suggestion on how to resolve the situation on
    your platform. Follow the instructions, and try running bash configure
    again.

  3. Run make:
    make images

  4. Verify your newly built JDK:
    ./build/*/images/jdk/bin/java -version

  5. Run basic tests:
    make run-test-tier1

第一步可以先git tag 查看tag, git checkout 到自己想看的版本

第二步是在检查本地编译环境,失败了可以看最后面的提示,看看有什么依赖没有满足,比如最常见的就是编译jdk13会要求你本地有jdk12。其次有个坑就是源码库里有很多CRLF,本地如果是mac系统,LF格式识别不了就跑不起来。mac系统可以使用这个命令批量转换一下换行符 find ./src -name "*" | xargs dos2unix(自行安装dos2unix)

第三四步是在本地编译源码、验证

第五步是运行测试用例,如果没有安装jtreg这里会报错,先跳过。

编译完了以后,sh bin/idea.sh 就可以导入源码了,可以把项目SDK设置成自己编译的那个。 ./build/*/images/jdk/bin/

到这里就可以导入idea阅读源码了,但是测试代码还是无法运行。需要下载安装 jtreg

运行测试代码

jtreg 是jdk的测试框架,因为开发 java 的时候并没有 junit, 这框架有个特点就是每个测试类开头有段注释,jtreg 会根据这段注释解析类路径之类的信息, 生成启动命令。 没错 jtreg 本质就是执行了一段 main 代码罢了。 大家可以自行研究

最好别用brew install安装,我用brew安装jtreg的目录下没有lib目录,后面运行的有点问题。

  1. git clone git@github.com:openjdk/jtreg.git
  2. 照着readme 编译 jtreg(PS. 有两种编译方式,一种失败了换另一种,也可以用我的,链接见文末)
  3. 然后设置环境变量,此时应该就可以运行上一节的步骤五了。
  4. 照着 plugins/idea 目录下的 readme 编译插件。(比较麻烦,可以直接用我的,链接见文末)(注意需要2021.1版本以上的idea才能安装)
  5. 如果测试代码不能运行,就在idea, project structure那里把测试代码所在的那个目录设置成test source。
  6. 如果发现有诸如 jdk.test* 的包找不到,就全局搜索找不到的类,把那个包所在目录设置成 source。 比如这个目录 test/lib

相关附件 链接: https://pan.baidu.com/s/1Xg7KuViz9ovPfk2kHUtXdg 密码: hcf2

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值