Как структурировать многомодульный проект с использованием стека на основе Python и JVM - PullRequest
0 голосов
/ 27 апреля 2018

Мы определяем структуру для нового проекта, имеющего несколько модулей, которые могут включать подпроекты на основе Python и JVM. До того, как Python был в стеке, мы использовали Gradle, который позаботился почти обо всех наших конфигурациях. Теперь мы хотим иметь Python в стеке в нескольких разных модулях.

Каковы рекомендации по управлению / структурированию таких проектов? Как эти рекомендации могут измениться, зная, что все разработчики используют IntelliJ IDEA?

Что мы имеем на данный момент:

  • Для каждого модуля Java / scala: модуль на основе Gradle, в котором все наши зависимости автоматически учитываются при импорте проекта и / или обновлении части Gradle.
  • Для каждого модуля Python: файл requirements.txt, содержащий все необходимые пакеты для этого модуля. Разработчику предлагается вручную создать виртуальную среду Python и установить ее как Module SDK в IntelliJ IDEA (это наша главная проблема, мы хотим как-то это автоматизировать).

Что нам нужно знать точно:

  • Что добавить в наш репозиторий git, чтобы мы были как можно ближе к структуре с нулевой конфигурацией для любого, кто клонирует / извлекает из репозитория?
  • Как использовать виртуальную среду Python для каждого модуля Python, как управлять пакетами и самими средами?
  • Стоит ли начинать напрямую с Pipenv , хотя он по-прежнему не поддерживается в IntelliJ IDEA, хотя эта проблема выглядит многообещающе?
  • Как управлять межмодульными зависимостями Python? Должны ли мы использовать какие-либо утилиты дистрибутивов Python?
...