是否有人使用Project Lombok进行大规模生产系统?它如何影响你的编译过程(即它是否进行双程编译,减慢速度,使其更脆弱)?
答案 0 :(得分:37)
Lombok不进行双程编译。从技术上讲,它“减慢”编译过程,因为它除了编译时发生的常见事情外还运行,但与解析阶段,较低阶段和转换阶段相比,lombok甚至几乎没有注册。
主要的脆弱性问题是在编辑器中编辑lombokified代码不是(A)哑(即记事本或差异查看器),(B)eclipse,(C)netbeans,或(D)得到它的全部大脑通过运行javac(例如带有java插件的vim),它会很糟糕。如果这不适用,减少样板应该只会使你的代码变得不那么脆弱。
免责声明:我是lombok的两个主要开发者之一:)
答案 1 :(得分:5)
我使用了Project Lombok,同时开发了适用于大型Java&amp ;;的Google Web Toolkit(GWT)前端。 Swing UI应用程序。因为我没有使用@SneakyThrows,所以我在运行时不需要lombok.jar。
使用delombok行为我提供了一个2阶段编译过程。 Lombok注释java代码 => Java代码 => Javascript
就大型Java项目的适用性而言,为Web前端代码的取消时间不到2秒,gwt编译过程的其余部分需要约50秒(这些指标来自开发人员工作站)。
我们正在考虑本周是否会为其他应用程序提供Lombok支持。构建主应用程序大约需要1个小时(包括在2xIntel E5450的盒子上构建的单元测试,安装程序等)。