Maven-在inteliJ中正确构造不同语言的模块

问题描述 投票:0回答:1

我最近一直在学习多模块项目,并且我几乎将所有Java项目都重构为包含多个小模块的项目。当所有的都是Java时,一切正常,但是我正在一个项目中工作,现在我有一个React App,一些python代码以及Java。

所以我有一个父模块,我的Java代码分成了一些模块,但是我应该如何处理Java脚本和python?我将Java脚本放在其自己的模块中,它具有pom(不依赖任何内容),但是将此react代码放在其自己的模块中到底有什么作用呢? Maven处理我的Java模块的依赖关系,但是这里的依赖关系以不同的方式处理,因此我无法将任何依赖关系管理放入react模块pom中。与python模块相同。

  • 为什么我还要将除Java以外的任何东西都分离到其自己的模块中?我一直在使用模块,主要用于优化第三方库的依赖关系管理。为react代码和python代码创建模块有好处吗?
java maven multi-module
1个回答
2
投票

所以,这是一个主意。假设您有这些文件夹/目录,每个文件夹/目录代表一个不同的项目。

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

© www.soinside.com 2019 - 2024. All rights reserved.