詹金斯上的龙目岛

Lombok on Jenkins

我刚刚开始使用 Lombok 的功能,通过修改其引导类路径,在我的本地 Eclipse 环境中为 Java bean 自动生成 getter 和 setter:

-vmargs -javaagent:lombok.jar -Xbootclasspath/a:lombok.jar

它在本地运行良好,但是由于我们的应用程序生命周期需要 Jenkins 构建,所以我有点怀疑那些 @Getter 和 @Setter 注释会影响代码的方式运行 在我们的 CI 环境中。

到目前为止,Lombok 触及了我们的域层,并且由于我们使用了其他框架,这些框架依赖于在 运行 时间对模型进行 getters/setters 才能工作,我想了解一下在我完全投入使用之前,更多地了解 Lombok 的字节码修改是如何完成的。

仅凭 pom.xml 文件中的 Lombok 依赖项,这些注释自动生成的所有方法是否都可以在 Jenkins 中使用,或者我是否还需要如上所述修改整个 Jenkins 的启动脚本。或者也许只是 Jenkins 工作需要以某种方式修改以合并 Lombok 的字节码修改行为?

如果有人尝试并成功地将 Lombok 与 Jenkins 合并 CI,我将愿意听取他们的经验并将其吸收到我们的 DevOps 流程中。

提前谢谢你。

在您的 pom 文件 ("provided") 中有一个 Lombok 依赖项应该可以完成这项工作。您可以使用 mvn package 在本地计算机的命令行上对此进行测试。您不需要 -vmargs 或其他任何东西。

Lombok 在编译阶段挂钩,并在类文件中生成正确的字段、方法和代码。所有适用于类文件的东西甚至不需要知道它是由 Lombok 生成的。

如果由于某种原因需要处理包含生成代码的源文件,也可以先运行 delombok using the Lombok Maven Plugin.

在我的公司,我们成功地使用了 Jenkins 和 Lombok。

披露:我是 Lombok 开发人员。