-->

龙目岛减缓构建过程中的大项目(Lombok slowing down build process i

2019-08-17 19:16发布

如果我在一个项目中使用龙目岛(约15个独立的项目 - EJB,网络......)龙目岛减缓构建过程约2-3倍。 对此有任何解决方案,或者是一个龙目岛的缺点?

刚看到这个项目的规模,这是约400 @Getter ,120 @Data ,250 @Setter和100 @EqualsAndHashCode

环境:IBM的Rational Application Developer 8.0.4与龙目岛最新版本(0.11.6)

任何想法,使其更快?

Answer 1:

最后,还有一个边缘建造可用,从而加快了龙目岛非常感谢! 他们没有加速起来了很多工作,这对我现在工作得很好。 构建时间几乎减少了一半,我不必等待每一个文件保存时间。

我也delomboked我的项目获得速度比较,这是不是delomboked代码,并与龙目岛的注解之间的代码非常差。

您可以在这里下载边建造: http://projectlombok.org/download-edge.html



Answer 2:

龙目岛是一个注释处理器(编译器插件,如果你想)。 在编译的时候,它的每个标注的一组特定的代码被发现时被调用,并且有机会创造新的来源或抛出编​​译器错误。 如果编译一轮过程中产生任何新的东西,另外一个必须发生,直到所有已成功编译。 所以,是的,它需要时间来找到注解,按要求(见下文)处理它们,并运行额外的编译轮。

注解处理器规范明确地禁止他们修改现有的代码 - 您可以产生新的类或其它文件(的.properties等),但不改变现有的代码。 Lombok的绕到通过检测所使用的编译器,和黑客其内部API来改变AST内存添加访问器和这样的。 这仅仅是...太可怕了。

而这,在我看来,主要的技术风险。 最终,龙目岛什么也不做你的IDE不能做 - 产生存取等,但可能会危及整个项目 - 如果你升级你的编译器和龙目岛的不支持,或介绍一个错误? 你结束了一个非编译代码(或你的情况,一个很慢的编译),仅仅是为了掩盖一些样板的方法去做,除了需要几行代码没有坏处。 但那只是我的个人意见 :)

所以要回到你的问题,我看不出你如何能得到更好的编译时间,除非产品总数移除龙目岛。



文章来源: Lombok slowing down build process in large project