我最近一直在学习多模块项目,我几乎将所有java项目重构为包含多个小模块的项目。当它都是java时一切都很好,但我现在正在开发一个项目,我有一个React应用程序,一些python代码,以及java。
所以我有一个父模块,并且我将我的java代码分成了一些模块,但是我应该如何处理java脚本和python?我将java脚本放在它自己的模块中,它有一个pom(不依赖于任何东西),但是将这个react代码放在它自己的模块中实际上会做什么呢? Maven 处理我的 java 模块的依赖关系,但这里的依赖关系以不同的方式处理,所以我不能将任何依赖关系管理放入 React 模块 pom 中。 python 模块也是如此。
- 为什么我应该将除 java 之外的任何内容分离到自己的模块中?我一直使用模块主要用于优化第三方库的依赖关系管理。为 React 代码和 Python 代码创建模块有好处吗?
最佳答案
所以,这是一个想法。 假设您有这些文件夹/目录,每个文件夹/目录代表一个不同的项目。
MyAwesomeProject
->db
->rest-api-java-maven
->reactjs-ui
->python-web-app
->scripts
->front-end.ps1
->back-end.ps1
->db.ps1
->back-end-2.ps1
->setup.bat
->docker-compose.yml
使 setup.bat 运行脚本文件夹中的脚本。
#Contents of setup.bat file
@echo off
start PowerShell.exe -NoProfile -ExecutionPolicy Bypass -Command "scripts\front-end.ps1"
start PowerShell.exe -NoProfile -ExecutionPolicy Bypass -Command "scripts\db.ps1"
start PowerShell.exe -NoProfile -ExecutionPolicy Bypass -Command "scripts\back-end.ps1"
exit
这些单独的脚本文件将启动每个单独的 docker 容器 例如,
#Contents of db.ps1
cd db
$containerID = docker ps -q
docker kill $containerID
docker build . --tag=db
docker run -p 27017:27017 db
#Contents of back-end.ps1
cd rest-api
.\mvnw clean install -DskipTests=true
.\mvnw spring-boot:run
#Contents of ui.ps1
cd ui
npm run start
然后拥有每个项目(我说的是项目而不是模块,因为java后端项目可以有多个模块) 有自己的 Dockerfile
现在您需要做的就是运行bat 文件,您的项目将被正确初始化。
关于java - Maven - 在 intelliJ 中正确构建不同语言的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58122065/