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

标签 java maven multi-module

我最近一直在学习多模块项目,我几乎将所有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/

相关文章:

没有(远程)存储库的 Maven?

java - 无法导入 javax.servlet.annotation.WebServlet

java - 无法在 API 23 及更低版本上下载 PDF 文件

java - log4j:错误无法解析文件

java - 如何衡量每个开发人员的 Java 代码单元测试覆盖率?

java - 使用 Maven 构建 jar 时如何添加命令行参数

多模块项目的 Maven 发布插件 - 更新依赖版本

java - 生成整数数组排列的最快方法

java - java中参数化类型的打印值

java - 如何在多模块 Maven 项目中配置 slf4j+logback?