Maven - Правильное структурирование модулей разных языков в inteliJ - PullRequest
0 голосов
/ 26 сентября 2019

Недавно я узнал о многомодульных проектах, и я в значительной степени реорганизовал все свои Java-проекты в проекты, содержащие несколько небольших модулей.Все нормально, когда все в Java, но сейчас я работаю над проектом, где у меня есть React App, немного кода Python, а также Java.

Итак, у меня есть родительский модуль, и у меня есть мой код Javaразделены на несколько модулей, но что мне делать с Java-скриптом и Python?Я поместил java-скрипт в его собственный модуль, в нем есть pom (без каких-либо зависимостей), но что на самом деле делает помещение этого кода реакции в его собственный модуль?Maven обрабатывает зависимости для моих java-модулей, но здесь зависимости обрабатываются по-другому, поэтому я не могу поместить любое управление зависимостями в модуль реагирования.То же самое для модуля Python.

  • Почему я должен даже разделять что-либо, кроме Java, на его собственные модули?Я использую модули в основном для оптимизации управления зависимостями для сторонних библиотек.Есть ли преимущества для создания модулей для кода реагирования и кода Python?

1 Ответ

2 голосов
/ 26 сентября 2019

Итак, вот идея.Допустим, у вас есть эти папки / каталоги, каждая из которых представляет отдельный проект.

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, и ваш проект будет правильно инициализирован.

...