Как настроить многопроектное рабочее пространство IntelliJ с помощью Gradle? - PullRequest
0 голосов
/ 13 июля 2020

Здравствуйте, я работаю над использованием Gradle для создания нескольких сервисов. Я предпочитаю иметь отдельные репозитории для каждого «пакета кода», то есть библиотеки или службы.

В IntelliJ моя установка имеет тенденцию быть следующей:

- IntelliJ Workspace
-- Service A
--- pom.xml
-- Service B
--- pom.xml
-- Library A
--- pom.xml
-- Library B
--- pom.xml

Службы A и B зависят от Библиотека A и B. Это прекрасно работает, в одной рабочей области IntelliJ я могу изменить библиотеки A и B и запустить службы, и все в порядке.

Я знаю, что вы можете создавать составные сборки и многомодульные сборки с Gradle но, как я уже сказал, все 4 модуля выше являются отдельными репозиториями, поэтому это не сработает.

Будет ли IntelliJ поддерживать аналогичную настройку, как указано выше, с Gradle, где он признает, что библиотеки A и B являются библиотекой от которых зависят службы A и B? Или все регулярно публикуют sh в локальном Maven для этого вручную?

Спасибо!

1 Ответ

0 голосов
/ 13 июля 2020

Перефразируя свой вопрос - есть 3 отдельных проекта gradle service1, lib1, lib2 service1 зависит от lib1 и lib2

ожидается

  1. для локальной разработки - где локально существует исходный код для всех трех проектов - используйте сборку локального кода
  2. см. в артефакты репозитория, если локальный источник не существует

Предполагается, что структура папок проста, как это.

app-code
- service1
- lib1
- lib2

service1 - settings.gradle

rootProject.name = 'service1'

include ':lib1'
project(':lib1').projectDir = new File('../lib1')

include ':lib2'
project(':lib2').projectDir = new File('../lib2')

service1 - build.gradle

dependencies {
    implementation (project(':lib1').projectDir.exists() ? project(':lib1') : 'com.lib1:lib1:1.0.0')
    implementation (project(':lib2').projectDir.exists() ? project(':lib2') : 'com.lib2:lib2:1.0.0')
}

как выглядит импорт intellij

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...