王辉的博客

猴子变成了鸡

文档在哪里?对于一个程序员来说,文档就在代码里,并且是最会用事实说话的文档。出于对Maven的好奇和疑惑,我试探着窥了几眼它的源代码。很惊奇的发现,它所有的模块里都有一个POM文件,这说明了一个什么问题?这说明Maven是由Maven自身构建的。有点费解吧?

追根究底,试着想像一下Maven第一次被构建时的情景。不难得到答案: Maven的第一次指定是直接献给了java最低层的编译器。像很多其他的第一次一样,Maven的应该也是痛苦的。依赖关系应该是一笔一画的加到类路径里的。

可之后,当他具有一定的生存能力的时候,就可以自力更生了,不仅能服务于其他的项目,也可以进行自我完善。

由此出发,让咱看一下鸡和鸡蛋的问题。众所周知,鸡蛋经过孵化可以成长为鸡,而鸡又可以下鸡蛋。周而复始,鸡的子子孙孙,无穷无匮。有人会疑问,那么鸡和鸡蛋是谁先存在的呢?

如果我们主观的认为鸡蛋只可以从鸡那里来,并且鸡只可以由鸡蛋孵化而来,那么这个问题就想不明白了。

可问题是,没人强迫我们要有这一坚定的信仰。鸡蛋说不好是从天上掉下来的,鸡也有可能是悟空摇身变来的。之后,鸡生蛋,蛋生鸡,一代比一代强。

感兴趣的朋友可以看一下关于bootstrap compile的文章,会发现更多的答案。

王辉 wechat
订阅王辉的博客,请长按或扫描上方微信二维码