|
|
1
187
在将projectlombok(或任何其他改变游戏规则的技术)用于某个项目(开源或其他方式)之前,您需要确保项目的利益相关者同意这一点。这包括开发者和任何重要的用户(例如正式或非正式的赞助商)。
容易的。忽略/不要参加火爆战争,或者干脆不提龙目山。 如果项目策略是使用Lombok,那么可能的帮助者需要习惯它。
-Lombok开发人员认识到,不为合成的getter和setter方法生成javadoc注释是一个问题。如果这是您的项目的一个主要问题,那么另一种方法是创建并提交一个Lombok补丁来解决这个问题。)
那不是开的!如果约定的项目策略是使用Lombok,那么无偿取消Lombok代码的提交者应该受到惩罚,如果必要的话,他们的提交权应该被撤销。 当然,这是假设你已经得到了利益相关者的认同。。。包括开发商。它假设你准备好为自己的事业辩护,并适当地处理不可避免的不同意见。 |
|
|
2
878
今天刚开始使用龙目山。到目前为止,我很喜欢它,但是有一个缺点我没有提到,那就是重构支持。
如果你有一个用
我可以想象这必须通过IDE插件来完成,而不是通过Lombok。
更新(2013年1月22日)
更新2(2013年2月26日)
例如,如果我看到一个名为
更新3(2013年3月7日)
更新5(2014年1月17日)
更新6(2014年6月26日)
从v1.14开始
问题是,如果您使用此功能,您的回退选项是有限的。我认为选项如下:
Delombok doesn't have an option to remove a subset of annotations ;至少在单个文件的上下文中是全部或全部。我打开了 a ticket to request this feature 带着德隆伯克旗,但我不希望在不久的将来。
更新8(2014年10月20日)
更新9(2015年9月1日)
更新10(2015年11月17日)
我不确定我有多同意他们的评价。考虑到幻灯片中记录的AutoValue的缺点,我将继续使用Lombok(如果Groovy不是一个选项的话)。
更新12(2016年2月17日)
更新14(2017年9月26日)
更新15(2018年3月26日)
然而,为了适应JDK9而进行的更改需要一些突破性的更改;所有更改都与配置默认值中的更改隔离开来。有点担心的是,他们引入了突破性的更改,但版本只是增加了“增量”版本号(从v1.16.18到v1.16.20)。既然这篇文章是关于安全的,如果你有
更新16(2019年1月9日) 看来 the JDK9 issues have been resolved Lombok可以使用JDK10,据我所知,甚至可以使用JDK11。
更新16(3月17日至21日) The JDK developers argue Lombok通过JDK团队希望关闭的漏洞利用了未发布的JDK内部构件,但由于各种原因故意留下了漏洞。 They have stated their concern (关于龙目岛的安全)因此:
|
|
|
3
117
继续使用Lombok,如果必要的话,您可以在以后“delombok”您的代码 http://projectlombok.org/features/delombok.html |
|
|
4
77
使用时
与任何IDE/own实现相比,保持Equals&HashCode的一致性并跟踪要计算的字段要容易得多。当您仍在定期添加/删除字段时尤其如此。
这同样适用于
再次用
好处不断。。 在我看来,这不是减少代码,而是清楚地传达您想要实现的目标,而不是必须从Javadoc或实现中找出答案。减少的代码只会使发现任何不同的方法实现变得更容易。 |
|
|
5
26
我读了一些关于龙目山的观点,实际上我正在一些项目中使用它。 嗯,在第一次接触龙目山时,我的印象不好。几周后,我开始喜欢它了。但几个月后,我用它解决了很多小问题。所以,我对龙目山的最后印象不是很好。 我这样想的理由:
就像另一个答案所说的那样,如果你对Java的冗长感到愤怒并使用Lombok来处理它,那么试试Kotlin。 |
|
|
6
25
龙目山很棒,但是。。。
注释处理以一系列循环运行。在每一轮中,每个人都有一个回合可以跑。如果在回合结束后发现任何新的java文件,则另一回合开始。这样,如果注释处理器只生成新文件,它们的顺序就无关紧要了。由于lombok不生成任何新文件,因此没有新的回合开始,因此一些依赖lombok代码的AP无法按预期运行。在使用mapstruct时,这对我来说是一个巨大的痛苦来源,而delombok ing不是一个有用的选项,因为它会破坏日志中的行号。 我最终入侵了一个构建脚本,使其同时与lombok和mapstruct一起工作。但我想放弃龙目山,因为它有多黑——至少在这个项目中。我在其他事情上总是用龙目山。 |
|
|
7
19
也存在长期维护风险。首先,我建议阅读Lombok的实际工作原理,例如,它的开发人员给出的一些答案 here . 官方网站还包含 list of downsides
总之,虽然Lombok可能会为您节省一些开发时间,但如果存在不向后兼容的javac更新(例如漏洞缓解),Lombok可能会让您在开发人员争相更新其内部api使用情况的同时被旧版本的Java困住。这是否是一个严重的风险显然取决于项目。 |
|
|
8
16
我知道我迟到了,但我无法抗拒诱惑:任何喜欢龙目山的人也应该看看斯卡拉。你在龙目岛发现的许多好主意都是Scala语言的一部分。 关于您的问题:让您的开发人员尝试Lombok肯定比Scala更容易。试一试,如果他们喜欢,试试Scala。 作为免责声明:我也喜欢Java! |
|
|
9
15
一年来,我几乎在所有的项目中都使用了Lombok,但不幸的是,我删除了它。一开始,这是一种非常干净的开发方式,但是为新的团队成员建立开发环境并不是非常简单和直接的。当它变成头痛时,我就把它去掉了。但这是一个很好的工作,需要一些更简单的设置。 |
|
|
10
11
|
|
|
11
11
我对Lombok的看法是,它只提供了编写bolilerplate Java代码的快捷方式。
|
|
|
12
10
想用龙目山的
在JDK1.6.0Ə39和1.6.0Ə45下使用Intellij IDEA 12.1.6和13.0尝试了lombok 1.12.2和0.9.3,但没有任何lombok插件。
只有启用并行编译时才会出现问题。 https://github.com/rzwitserloot/lombok/issues/648 更新
更新 Kotlin 如果可能的话。 因为它从一开始就解决了Lombok试图解决的所有Java问题。 |
|
13
6
和 杰克逊CSV ,当我将我的对象(javabean)封送到一个CSV文件时,列被复制了,然后我删除了Lombok的@Data注释,封送处理工作正常。 |
|
|
14
2
我不推荐。我曾经用过它,但是当我使用netbeans7.4时,它把我的代码弄乱了。我必须在我的项目中删除所有文件中的lombok。有德隆伯克,但我怎么能确定它不会破坏我的代码。我不得不花上几天的时间来移除lombok并恢复到普通的Java风格。我只是太辣了。。。 |