我有一个项目:
\--- Project ':backend'
+--- Project ':backend:api'
\--- Project ':backend:shared'
在根模块中我配置了常见的依赖项和quarkus插件 模块 API 包含服务、资源以及 Web 服务器所需的所有内容
共享模块包含存储库和实体
项目构建成功,但工作异常
问题:
谢谢
当我尝试使用
gradle :backend:api:build :backend:api:quarkusDev
启动 API 时,它可以工作,但停止后服务器仍在运行,我可以发送请求。我认为这可能是因为共享模块也启动了,并且在 api 上取消 gradle 任务后,共享仍在运行。当我尝试再次运行时,它不起作用,因为使用了端口 8080,我需要通过 'kill -9 $(lsof -t -i :8080)' 删除它
在我看来,在您的情况下可能没有必要分成“共享”和“api”模块。它们似乎是相互关联的,构成了项目此部分中统一解决方案的一部分。我认为将业务领域划分为不同的模块更合适——每个模块致力于解决特定问题或解决特定领域。
我认为定义模块之间的公共库和框架插件/依赖关系是很好的。
配置服务器的启动和关闭理想情况下应驻留在根目录中,确定需要启动的内容。当 root 启动时,所有必需的模块都应该启动,当它停止时,一切都会停止。项目中可能有一些模块不直接链接到根,但处理并行进程。这些可能会产生工件,或者在必要时可以作为单独的项目启动,从而需要单独完成。然而,如果模块是互连的,它们应该从统一的入口点开始。