【问题标题】:How to use Project Lombok in large, SVN/Maven project如何在大型 SVN/Maven 项目中使用 Project Lombok
【发布时间】:2016-12-07 17:23:43
【问题描述】:

我正在与其他几位开发人员一起开发 Java 应用程序。我们使用maven 进行包管理,使用SVN 进行版本控制。

我最近开始使用Lombok,我厌倦了我的许多课程中的样板。但是,Lombok must be installed in the Eclipse environment,所以我的问题是,我所有的队友都必须安装它才能编译 Lombok 代码吗?如果我将我的代码提交到 repo 并且他们将其拉出,他们将无法构建项目吗?如果是这样,有没有办法解决这个问题?其他团队肯定也在使用这个方便的库。

在简单地“尝试”并引起他们的愤怒之前尝试更多地理解这一点。

【问题讨论】:

    标签: java maven svn lombok


    【解决方案1】:

    误读您发布的第二个链接。

    是的,Lombok 主要用于您的 IDE。

    当然,您不需要 IDE - 您也可以将其与 maven、sbt、gradle 一起使用 --- 请参阅他们的 documentation

    仅作记录:任何正常的编程语言工具都需要一些非 IDE 版本才有意义。你看 - 最后,任何真正的项目都应该使用构建系统构建(以允许自动化、持续交付、部署,你可以命名它)。换句话说:一个合理的构建的关键属性是能够在一些“非开发人员”后端系统上运行它。如果您要求某个开发人员在他的本地工作站上做某事以推出您的产品,那么很可能您做错了什么。

    编辑:请记住 - Lombok 通过注释工作。这意味着您在引入 Lombok 时更改了 Java 源代码。这当然意味着 任何 人(或就此而言的构建过程)需要“启用 Lombok”。因此:您将要向源代码中的一些外部、第 3 方开源工具集添加 主要 依赖项。您不仅应该了解所有技术后果,还应该了解法律方面的内容。当然,团队中每个有发言权的人……都应该得到他的认可。因为如果您不启用 Lombok,您将无法再构建!

    在迈出这一步之前,您应该确信使用 Lombok 对您的团队来说是正确的选择。鉴于您的问题/cmets 的(抱歉)天真,我想知道您是否真的要做出这个决定。

    【讨论】:

    • 谢谢 GhostCat,我会检查你链接的文档。我们的项目确实有一个 maven 构建,但是如果开发人员在他们的编辑器中打开源代码,编辑器会开始抱怨,对吗?所以也许只是简单地告诉开发人员,如果他们没有 lombok,他们就不能真正在几个模块中编辑我的源代码?还是我还是误会了?
    • 感谢您的澄清。不用担心,你是对的,这不是我为团队做出的决定。
    • 最后一个问题,抱歉。我是否至少正确理解要在项目中使用 Lombok,我们必须将其作为 maven 的依赖项包含在内,并让团队中的每个人都将项目安装到他们的 IDE 中?
    • 如前所述:当前正在编译/构建源代码的任何人或进程都需要为 Lombok 启用。如果不是,它们迟早会被打破。
    • 是的,你说得对,你们都必须将它包含在你的 pom 中,并且让所有开发人员都将 lombok 安装到他们的 IDE 中。
    【解决方案2】:
    1. “我的所有队友都必须安装它才能编译 Lombok 代码吗?” - 是的,他们可能需要在 ide 中安装 lombok 插件,并且依赖项必须作为依赖项包含在 pom 中。

    2. “如果我将我的代码提交到 repo,并且他们将其拉取,他们将无法构建项目吗?” - 如果您从命令行更新 pom,是的,从 ide 取决于 ide 如何设置为与项目一起使用。

    3. “如果是这样,有什么办法可以解决这个问题吗?” - 不,你真的应该和团队一起提出减少样板代码的想法,并提出一个共同的战斗策略。在他们身上使用新技术是破坏性的、不专业的,并且可能会损害您的声誉。在本地尝试,向团队展示之前和之后的情况,回顾您在此过程中遇到的利弊以及预期的影响。

    【讨论】:

    • 我喜欢你的子弹号。 3!
    • 感谢 Bob,感谢坦率的回应。很有帮助。
    猜你喜欢
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    相关资源
    最近更新 更多