2015-11-05 4 views
1

У меня есть проект с несколькими модулями с произвольным числом spring-boot rest services, которые все запускаются самостоятельно embedded tomcat и некоторые веб-интерфейсы, которые он сам не должен содержать никакой бизнес-логики. Они будут настроены как Zuul прокси и, следовательно, не нуждаются в каких-либо других зависимостях.Gradle Multiproject - Лучшее управление зависимостью

Так что на верхнем уровне build.gradle Я могу объявить все зависимости, которые являются общими для всех проектов, которые в этом случае будут spring-boot-starter и log4j. Хотя все остальные службы разделяют почти все их зависимости.

Есть ли способ группировки зависимостей? Поэтому я могу сказать, что вы - интерфейс с минимальными зависимостями, и вы являетесь базовым проектом JPA?

Я знаю, что могу определять зависимости для всех отдельных, но затем он удваивается во многих файлах.

ответ

1

Взгляните на official user guide's «Как объявить свои зависимости», глава 52.4.8. «Необязательные атрибуты». В соответствии с этим, вы можете объединить зависимости в коллекции, которые могут быть применены в качестве зависимостей проекта, как:

List groovy = ["org.codehaus.groovy:groovy-all:[email protected]", 
       "commons-cli:commons-cli:[email protected]", 
       "org.apache.ant:ant:[email protected]"] 
List hibernate = ['org.hibernate:hibernate:[email protected]', 
        'somegroup:someorg:[email protected]'] 
dependencies { 
    runtime groovy, hibernate 
} 

Таким образом, вы можете создать в скрипте корень построить ряд зависимостей групп для различных конфигураций (Я имею в виду один для интерфейса, один для проекта JPA и т. Д.). И тогда единственное, что вам нужно, это применить эти группы к подпроектам, которые имеют тип reauired.

+0

Выглядит очень похоже на то, что мне нужно :). Есть ли способ встраивать исключения там, если я не хочу, например, 'group: 'org.springframework', module: 'spring-webmvc'' в моих проектах jpa, но вам нужна другая загрузка файлов? –

+0

@DennisIch не совсем уверен, можно ли исключить из списка список, но тогда вы примените некоторые группы зависимостей к проекту, вы можете попробовать изменить его конфигурацию, например 'configurations { compile.exclude group: 'org. hamcrest ' } ', чтобы исключить что-то из всей конфигурации – Stanislav

+0

Ок, подумал так ... Не могу иметь все, что я предполагаю, но помогает многое уже. Спасибо за ввод. –

Смежные вопросы