Я перехожу на Gradle как инструмент для создания Java-проекта. Мой главный проект (A) имеет зависимость от других проектов (B и C).Gradle Multiproject с SCM
В настоящее время каждый из этих проектов находятся в CVS индивидуально, и когда я хочу, чтобы скомпилировать ИИ должны проверить A, сделать подкаталог в вызываемом B, в котором я проверяю B. То же самое относится и к С.
Im собирается перейти к диспетчеру репозитория (nexus), в котором могут быть опубликованы B и C. Когда это произойдет, модуль А может просто иметь зависимость от B и C, которые он может получить от связи.
Однако трудности возникают, если я не хочу публиковать B и C (для целей тестирования), и я хочу построить A с моим последним кодом из B и C, не связывая его с nexus.
Мои первоначальные мысли об этом - построить банку для B и C и потянуть ее в папку «lib» для A. Однако я уверен, что есть лучший способ.
В maven я мог бы сделать «mvn clean install», который установил бы B и C в моем локальном кэше maven. Тогда он будет искать подходящие банки.
Но я все еще не уверен, что это лучший способ. Я посмотрел на подпроекты градиента, но я не полностью их понимаю. Как бы подмодули обрабатывались в SCM (мне также нужно было бы использовать git-подмодули?)
Я был бы признателен за некоторые рекомендации относительно наилучшей практики для этой ситуации. Благодаря
EDIT:
Ответ ниже от Вячеслава Швеца наиболее точный ответ, который я нашел до сих пор. Существует еще один способ отключить зависимость проекта от градиента с зависимостью в стиле maven.Это включает в себя замену зависимостей, как описано в https://docs.gradle.org/current/userguide/dependency_management.html#sec:project_to_module_substitution
Это может быть обернута вокруг:
if(project.hasProperty("someSwitch")){
configurations.all{.....
....
}
}
Использование этого метода было бы:
gradle build -Psomeswitch