gpt4 book ai didi

playframework - Lombok 与 Play 2

转载 作者:行者123 更新时间:2023-12-04 12:35:13 26 4
gpt4 key购买 nike

Lombok 与 Play Framework 2 的集成怎么样?
我真的很喜欢Lombok它使我的代码更具可读性和更少的样板。 Play Framework 也很棒。但是,如果您将它们混淆,则有很大的麻烦。

主要原因是在域类之前编译的 play 项目中的 Scala 模板。所以 Lombok,它本身就是编译器的 hack,当时不会生成访问器。

问题是:是否有任何方法可以使其发挥作用?

我在 Google 中找到了一些讨论Groups ,但他们没有提供任何合理的解决方案。那么你有成功吗?

而且.. 为什么 Play Framework 项目的人不提供一些类似 Lombok 的解决方案?不管怎样,Play 充满了代码生成魔法和影子编译……那么,为什么不呢?

最佳答案

因此,解决方法相当简单,并在 google groups 中提出。 ,但是文档中有一些晦涩的地方,我将逐步描述应该做什么。

1. 在逻辑上隔离域模型

这意味着域类不应从 View 或 Controller 调用任何内容。

2.创建包含域类的子项目

给出的一些信息here .子项目与默认 Play 的项目非常相似,创建它并不难。我在 play 的控制台中找不到任何工具来执行此操作,因此您需要手动创建一些文件夹。

首先在主项目的文件夹中创建子项目文件夹。假设您将其命名为域数据。接下来,创建所需的文件夹,如 standart app. layout 中所述.在大多数情况下,您希望在创建的子文件夹中创建简单的目录树:

app
└ models
└ myclasses

现在将所有域类移动到子项目的目录树。

3.配置

配置会很简单。移动到主项目的项目文件夹并打开 Build.scala 文件。这是 SBT 构建系统的构建脚本。

首先定义一些依赖项。将以下字符串添加到您的构建文件中:
val domainDependencies = Seq(
"org.projectlombok" % "lombok" % "0.11.4"
)

这会将 Lombok 的 jar 添加到您的子项目中。现在创建子项目定义:
val domainProject = PlayProject(
"domain-data", appVersion, domainDependencies, path=file("domain"), mainLang=JAVA
)

路径应该指向子项目的文件夹。

最后一步是更新主项目配置,使其依赖于子项目。依赖将需要在每个主项目重建时重新构建子项目。
val main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).dependsOn(domainProject)

毕竟使用终端中给出的 Play 命令启动主项目,并键入项目命令。您应该会看到您的新子项目。

4.利润

现在是使用 Lombok 安全重构现有代码的时候了。

关于playframework - Lombok 与 Play 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11062167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com