Хорошо, я понимаю, что Gradle и Android Studio, похоже, думают, что все приложения библиотеки построены только для одного проекта и только для одного проекта, но это не так. У меня есть много общих приложений для библиотек с общими целями, которые используются во всей организации. Gradle, похоже, не очень подходит для этого желаемого решения. Может ли кто-нибудь дать представление?Проект внешней библиотеки Studio Gradle для Android
Моя текущая структура на зачаточном уровне, как это:
|--Directory
| |--PROJECT A
| |---Module 1
| |--Project B
| |---Module 2
| |--Project c
| |--Module 3
/////////////////////////// ////////////////// Моя текущая структура зависимостей выглядит так: ////////////////////// ///////////////////////
Проект A: (FYI, Строит Just Fine) settings.gr
Проект А в Адле
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, СЛОМЛЕННОЕ)
Проект Кассиопеяне settings.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 построил из родительского приложения. Любая помощь по этому вопросу будет также оценена. Поскольку не каждое репо используется в каждом приложении, это может стать излишним.
«Как я могу указать свою собственную структуру каталогов зависимостей в build.gradle вместо настроек.gradle, чтобы сделать ее доступной для всех, кто ее использует?» - опубликовать файл AAR из проекта библиотеки в репозиторий артефактов. Приложения, нуждающиеся в библиотеке, получают его из репозитория артефактов, так же, как вы получаете зависимости от Maven Central или других репозиториев артефактов. В лучшем случае, вот как я буду заниматься этим. – CommonsWare
Могу ли я сделать это на локальном диске? Поскольку в настоящее время у нас нет локального сервера Maven. – Sam
Также вы подтверждаете, что теперь могут использоваться зависимости AAR. Потому что в последнее время я слышал, что в Gradle еще не было. https://code.google.com/p/android/issues/detail?id=55863 – Sam