一、前言
芜湖,我也开始造轮子咯!
intellij IDEA 已经成为几乎每个 Java 程序员必不可少的代码编辑器,但是很少有人去思考 IDEA 是如何管理我们的项目的。假如有一天没有了我们赖以生存的 IDEA,我们还能写出多少代码?甚至把代码组装成一个项目都要成为一件很难的事情。
本篇文章是一篇探索小文,没有全面的介绍更没有严格的考证,只是笔者工作中的一些经验分享,希望厉害的大佬们轻喷~
二、需求引发思考
在上周的工作需求中,有这么一条:
写一个 IDEA 插件,当用户点击 Run/DeBug 时将 Java 启动时的参数通过插件一键添加在VM options 中。
当时接到需求的我是懵逼的,感觉自己无从下手,不过静下来之后思考了一会儿,有了两个思路:
一、找到 Run/DeBug Configuration 的实现类,用反射的方式对 Runner 类的某个方法进行增强,通过 JavaParameters 类添加 VM options。
二、找到 Run/DeBug Configuration 的持久化的方式(我能想到的就是写成本地文件或者存入数据库),从最底层对其进行修改。
果断的选择第二种,因为第一种咱不熟呀!于是我就开始了寻找配置文件的漫漫长征路。
三、思路大于盲目投入时间
最开始我在 IDEA 的安装目录下找了很久,.properties文件更是不能放过,找到一个就去研究一个,结局是注定一无所获的。我当时明白了一个道理,不去思考的人是真正的懒人,而懒人投入时间精力得不到结果是正常的。于是我开始思考这个配置文件的特性:
一、每个项目都会存在这个配置文件
二、这个配置文件不会放在远离项目的地方,从项目管理、效率或者是安全的角度来看这个文件放在项目的目录中是最合适的
带着思考我的目光就对准了每个项目都有并且长久以来被我忽视的.idea文件夹,点开它看到了一堆.xml文件,心想应该八九不离十了。对于这堆.xml文件,我并没有选择一个一个翻开去找,而是用了更为巧妙的方式:用 IDEA 集成 git 的一个便捷功能。
众所周知,当你用 git 提交代码后,项目中所有文件的颜色都会变成正常的黑色,但是一旦这些文件发生了改变,文件就会改变颜色。通常情况下.idea文件是要忽视提交的,于是我更改了.gitignore文件使该文件夹全部文件提交,然后对 Run/DeBug Configuration 的配置进行更改。果不其然,其中的workspace.xml文件变色了。之后用搜索字段的功能顺利找到了VM options的配置,事半功倍。
四、编写代码
找准了目标就容易下手了,需求变成了用 Java 解析 .xml文件,推荐使用工具包 dom4j.jar ,不过像这种四层以上的树结构并且它们的叶子还很像的DOM用啥工具包也都一样,得自己理清在操作哪一层,用纸笔去画一画记一记会更清晰。具体代码我就不放了,因为放了也看不懂,包括我自己。算了,还是放一段吧,这是我写的小Demo,不是很注意代码规范。
这也是最让我神魂颠倒的一段代码,真的写的是头晕眼花,不过所幸达成了目的。
五、总结
- 在
.idea文件夹下还有很多配置是特别有用的,可以说没有.idea文件夹就不会有你的项目,该文件夹下还有很多非常有用的配置文件,像是module.xml他决定了你的项目是个什么样的项目,是 Java 项目呢还是插件项目或者是Spring项目等,并且还与另一个常被我们忽视的文件project name.iml关联很大。 - 善于思考会让工作变得有趣
文章没有经过严格的考证,而且没有对.idea文件夹下的文件进行一一解析,盼各位大佬提问补充斧正~