开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天,点击查看活动详情
默认code style比较
新建一个java文件,内容一致,然后分别使用idea与eclipse的默认code style进行格式化,格式化之后进行比较差异。
文件内容:
/** * Description:线程Demo * * @Author: ShiPengYu * @Date: 2022/10/13 */
public class MyThread extends Thread {
public MyThread(String name) {
super(name);
}
@Override
public void run() {
super.run();
System.out.println(Thread.currentThread().getName() + ":Hello!");
}
}
在eclipse中新建一个demo项目,新建一个MyThread.java文件,将文件内容粘贴进去,然后格式化代码(快捷键ctrl+shift+F):
然后再在idea中新建一个相同内容的文件并格式化(快捷键ctrl+alt+L):
然后再在idea中点击选中文件鼠标右击选择Compare with选项,然后在磁盘中找到eclipse中创建的文件所在位置,进行两个文件的比较。
比较结果显示(按照下图中将第三个选项调整一下,这样空格差异就能高亮,否则不方便观察):
这个现象在协同开发使用不同开发工具时,提交代码,查看代码差异的时候经常遇到,有时候明明只改了一两个地方,但是比较下来整个文件几十处差异,非常的难受!
统一code style
使用统一的代码风格标准是解决这种差异的一种好的办法,idea与eclipse都支持自定义代码风格,所以下面使用Google的code style模板来探究解决这种差异。
Google code style 的github下载地址:
idea使用Google code style
首先去GitHub上将文件适用于idea的code style模板文件下载到本地磁盘(也可以将整个仓库拉取下来)。
然后在idea中导入模板文件:
选择刚才下载的模板文件进行导入
后面的弹窗点击ok即可。
后面想要换回来可以点击这里进行切换。
eclipse使用Google code style
在GitHub仓库中下载适用于eclipse code style的模板文件:
导入,然后应用并关闭。
都使用Google code style后的比较
按照上述步骤都设置好Google code style之后再次进行代码格式化,然后再次比较:
发现那种因为空格或者制表符的差异已经消失,但是!
- 在eclipse中文件末尾多了一个空行
- 在idea中类声明下面多了一个空行
起初我还以为我操作过程中不小心点击到了换行什么的,再次确认内容之后格式化,仍然是一样的效果。
至于为啥会有这种差异,暂时没有搞清楚,模板文件也看不懂。但是在issues中看到了下面这个:
大致意思就是这两个模板文件更新在4年前,实际上已经过时了。谷歌已经将其转移到了Google Java Style Guide。
那上面我去瞅了下,好像就是在描述Java的code style因该咋咋咋的,并没有发现能直接拿来使用的模板文件。
其它的解决办法
虽然将空格以及制表符这种数量最多的差异屏蔽了,多出几行空行感觉已经友好许多了,但是能全部统一是最好的。
阿里的Alibaba Java Coding Guidelines idea插件也是挺久没有维护了,在新版本的idea中会还报错。阿里在GitHub中关于p3c规范仓库中的模板文件是基于eclipse的,并不适用于idea,至于网上说的另外一种安装一个在idea中支持eclipse格式化的插件,然后再使用p3c规范的方式,我觉得不够好(自己也尝试过,没啥效果,就连空格制表符的问题都没能解决,原因也没去细究)。再加上看到不论是阿里的p3c还是谷歌的styleguide仓库都已经许久没有更新了,虽然代码格式规范或许十年不变也有可能,但是idea、eclipse在不断的更新,这些模板文件现在还适用不适用还是不确定的。
看到idea可以将其导出为eclipse的模板文件,所以或许可以基于阿里的p3c也好,谷歌的也好,或者基于某个标准定义一个自己的code style,然后将其导出为eclipse或者idea的模板文件,然后由公司自己进行维护,我觉得也是比较可行的。
今天的文章eclipse idea统一使用Google Java code style分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/20745.html