Ale*_*var 6 lombok playframework
Lombok与Play Framework 2的集成怎么样?我真的很喜欢Lombok它使我的代码更具可读性和更少的样板.Play Framework也很精彩.但是如果要混淆它们的话会有很大的麻烦.
主要原因是在域类之前编译的play项目中的scala temlates .所以Lombok,它本身就是编译器的黑客,在那个时候不生成访问器.
问题是:如果有任何方法可以使其发挥作用?
我在Google 网上论坛中发现了一些讨论,但他们没有提供任何合理的解决方案.你有成功吗?
并且..为什么来自Play Framework项目的人不提供类似Lombok的解决方案?无论如何Play充满了代码生成魔法和阴影编译......所以,为什么不呢?
因此,解决方法相当简单,是在google groups中提出的,但文档中有些模糊之处,我将逐步描述应该做什么。
\n\n1. 从逻辑上隔离你的领域模型
\n\n这意味着域类不应该从视图或控制器调用任何内容。
\n\n2. 创建包含领域类的子项目
\n\n这里给出了一些信息。子项目与默认播放的项目非常相似,并且创建它并不难。我没有找到任何工具可以从 play 的控制台执行此操作,因此您需要手动创建一些文件夹。
\n\n首先在主项目文件夹中创建子项目文件夹。假设您将其命名为domain-data。接下来,创建所需的文件夹,如标准应用程序中所述。布局。在大多数情况下,您希望在创建的子文件夹中创建简单的目录树:
\n\napp\n \xe2\x94\x94 models\n \xe2\x94\x94 myclasses\nRun Code Online (Sandbox Code Playgroud)\n\n现在将所有域类移动到子项目的目录树中。
\n\n3.配置
\n\n配置会很简单。移至主项目的项目文件夹并打开Build.scala文件。这是 SBT 构建系统的构建脚本。
\n\n首先定义一些依赖关系。将以下字符串添加到您的构建文件中:
\n\nval domainDependencies = Seq(\n "org.projectlombok" % "lombok" % "0.11.4"\n)\nRun Code Online (Sandbox Code Playgroud)\n\n这会将 Lombok 的 jar 添加到您的子项目中。现在创建子项目定义:
\n\nval domainProject = PlayProject(\n "domain-data", appVersion, domainDependencies, path=file("domain"), mainLang=JAVA\n)\nRun Code Online (Sandbox Code Playgroud)\n\n其中路径应指向子项目的文件夹。
\n\n最后一步是更新主项目配置以使其依赖于子项目。依赖关系将需要在每个主项目重建上重新构建子项目。
\n\nval main = PlayProject(appName, appVersion, appDependencies, mainLang = JAVA).dependsOn(domainProject)\nRun Code Online (Sandbox Code Playgroud)\n\n毕竟使用终端中给出的play命令启动主项目,然后输入项目命令。您应该看到您的新子项目。
\n\n4、利润
\n\n现在是时候使用 Lombok 安全地重构现有代码了。
\n| 归档时间: |
|
| 查看次数: |
3350 次 |
| 最近记录: |