我目前正在为我正在处理的项目定义项目结构。该项目是一个简单的 SOA 实现,因此有一个 grails 应用程序和许多不同的服务。
我想将这些服务打包到单独的模块(jar)中,以便它们可以轻松地单独部署,并且不存在成本污染类的风险。
项目结构和依赖关系可以可视化为:
Grails App (war)
|__ Service Gateway (jar)
|__Service A (jar)
|__Service B (jar)
虽然这些服务最终将单独部署,但为了便于本地开发,我想将它们打包到单个 grails 应用程序中,直到有必要将它们分开。
我的最终目标是能够以与开发简单 grails 应用程序相同的方式开发这些服务,因为我将能够动态更改任何类(在任何模块内)并让它接受。
我正在努力寻找 IntelliJ 中表示这种结构的最佳方式。
我为上述每个模块创建了单独的模块并添加了它们之间的依赖关系,但显然 grails 在运行时不知道这一点。
我已经阅读并找到了以下可能的解决方案,所有这些目前都感觉有点不满意,因为需要构建一个 jar,这意味着无法动态重新加载类。
- 将模块安装到本地 maven 存储库中,并在 grails 构建依赖项中引用它。
- 将构建的 jar 放入 lib 目录。
- 将它们添加为 grails 插件(似乎有点笨拙,因为它们不需要 grails 功能)。
- 在 grails 类路径中找到包含这些模块的输出目录的其他方法(不确定最干净的方法)。
谢谢!