Проект внешней библиотеки Android Studio Gradle

Хорошо, я понимаю, что Gradle и Android Studio, похоже, думают, что все приложения библиотеки построены только для одного проекта и только для одного проекта, но это не так. У меня есть много общих приложений для библиотек с общими целями, которые используются во всей организации. Gradle, кажется, не очень подходит для этого желаемого решения. Может ли кто-нибудь дать представление?

Моя текущая структура на очень рудиментарном уровне выглядит так:

|--Directory | |--PROJECT A | |---Module 1 | |--Project B | |---Module 2 | |--Project c | |--Module 3 

///////////////////////////////////////////// Моя текущая структура зависимостей как это: /////////////////////////////////////////////

Проект A : (FYI, Builds Just Fine)

Настройки проекта A..gradle

 include ':Module 1', ':Module 2' project(':Module 2').projectDir = new File('../Project B/Module 2') 

Модуль 1 build.gradle

 dependencies { compile project(':Module 2') } 

Проект C: (FYI, BROKEN)

Настройки проекта C..gradle

 include ':Module 3', ':Module 1' project(':Module 1').projectDir = new File('../Project A/Module 1') 

Модуль 3 build.gradle

 dependencies { compile project(':Module 1') } 

Разрывы: невозможно разрешить модуль 2 внутри файла build.gradle модуля 1.

Это связано с тем, что структура каталогов для модуля 2 устанавливается в настройках проекта A. gradle, поэтому Project B не имеет понятия, откуда это сделать.

Я понимаю, что могу добавить

 project(':Module 2').projectDir = new File('../Project B/Module 2') 

К проекту C, и все будет работать нормально. Однако Project C не использует и не знает о модуле 2. Я хочу, чтобы другие разработчики имели возможность использовать мой общий проект общей библиотеки без необходимости вникать и видеть, какие проекты библиотек я использовал, и включать их в свои настройки. Как я могу указать собственную структуру каталогов зависимостей в build.gradle вместо настроек.gradle, чтобы сделать ее доступной для всех, кто ее использует?

На второй ноте, но похожей теме. У меня такая же проблема с файлами JAR. Если я укажу REPO в build.gradle в библиотечном проекте, например: myRepo1 и myJar1. Затем, когда этот проект библиотеки используется в родительском проекте, который не определяет репо, содержащее банку в разделе зависимости проектов библиотек, он не может разрешить файл jar из проекта библиотеки, когда проект компиляции (': libproject') является используемый. Я должен дублировать указатели репо в файле build.gradle родителя, чтобы libproject построил из родительского приложения. Любая помощь по этому вопросу будет также оценена. Поскольку не каждое репо используется в каждом приложении, это может стать излишним.

    Intereting Posts