Gradle: Могу ли я зависеть от модуля в другом проекте?
Я хотел бы создать проект со следующей структурой:
Project 1
+ build.gradle
+ settings.gradle
+ module A
+ build.gradle
+ src
+ ...
+ module B
+ build.gradle
+ src
+ ...
Project 2
+ build.gradle
+ settings.gradle
+ module C
+ build.gradle
+ src
+ ...
+ module D
+ build.gradle
+ src
+ ...
Мне бы хотелось, чтобы модуль A проекта 1 зависел от модуля D. проекта 2. Мне бы хотелось, чтобы это была зависимость от источника (не артефакт maven) и работа с Gradle 2.14 и Android Studio 2.1.
Я не контролирую макет Project 2 или его root build.gradle. Все, что я могу сделать, это вытащить его в свое рабочее пространство и использовать его.
У меня есть полный контроль над Проектом 1, и я могу настроить его так, как я захочу. Я бы предпочел, чтобы полная сборка проекта 1 не вызывала полную сборку проекта 2, просто :project2:moduleD
, Все, что работает, тем не менее, будет делать.
Я хотел бы знать, как настроить файлы build.gradle для Project 1 и что поместить в dependency
предложение в build.gradle для модуля A.
3 ответа
Я предполагаю, что то, что вы описали, не является мультипроектом, то есть это два отдельных проекта. Если вы не можете убедить сопровождающего опубликовать артефакт в любом месте, и вам всегда нужна последняя версия Project 2. Лучше всего сделать ссылку на выходной jar-файл проекта.
compile files('path/to/Project2/build/output.jar')
Для этого потребуется выполнить сборку в Project 2 после загрузки в систему самого последнего источника. Если у вас есть конкретное местоположение проекта, вы можете автоматизировать это немного больше, но все это довольно хрупко.
вы можете проверить удар URL
https://docs.gradle.org/current/userguide/declaring_dependencies_between_subprojects.html
и убедитесь, что весь этот проект использует один и тот же корневой проект
Пример для градиента:
rootProject.name = 'sof-portofolio'
включить «ядро: модель1», «сервис: модель2»
Вы пробовали символическую ссылку? Сделайте символическую ссылку в проекте 1 на папку проекта D и добавьте ее в настройки проекта 1. Gradle