Maven - 在 intelliJ 中正确构建不同语言的模块

Maven - Properly structuring modules of different languages in inteliJ

我最近一直在学习多模块项目,我几乎将所有 java 项目重构为包含多个小模块的项目。当它全部 java 时一切正常,但我现在正在做一个项目,我有一个 React 应用程序,一些 python 代码,以及 java.

所以我有一个父模块,我将我的 java 代码分成了一些模块,但是我应该如何处理 java 脚本和 python?我将 java 脚本放在它自己的模块中,它有一个 pom(不依赖于任何东西),但是将这个反应代码放在它自己的模块中实际上做了什么? Maven 处理我的 java 模块的依赖关系,但这里的依赖关系以不同的方式处理,所以我不能将任何依赖关系管理放入 react 模块 pom.xml 中。 python 模块也是如此。

所以,这是一个想法。 假设您有这些 folders/directories,每个代表一个不同的项目。

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 文件,您的项目将被正确初始化。