我最近一直在学习多模块项目,并且我几乎将所有Java项目都重构为包含多个小模块的项目。当所有的都是Java时,一切正常,但是我正在一个项目中工作,现在我有一个React App,一些python代码以及Java。
所以我有一个父模块,我的Java代码分成了一些模块,但是我应该如何处理Java脚本和python?我将Java脚本放在其自己的模块中,它具有pom(不依赖任何内容),但是将此react代码放在其自己的模块中到底有什么作用呢? Maven处理我的Java模块的依赖关系,但是这里的依赖关系以不同的方式处理,因此我无法将任何依赖关系管理放入react模块pom中。与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文件,您的项目将正确初始化。