Android studio добавить внешний проект для сборки.Gradle в


у меня есть пример проекта, со следующей настройкой:

/root
  + Pure Java Lib
  + Android Test Lib
  + Android Test Project

где 'Тестовый Проект' зависит от ' Тест Lib', и последнее зависит от ' Чистая Java Lib' компиляция проекта и запуск этой установки работает просто отлично.

Теперь я думаю об импорте моего предыдущего рабочего пространства Eclipse и работе с Android studio, проблема в том, что настройка проекта отличается, и я хотел бы продолжай в том же духе.

например, если использовать предыдущий пример:

/root
  + Android Test Lib
  + Android Test Project

/Some Other folder (another repository for example)
  + Pure Java Lib

Я пробовал много конфигураций, но я не нашел способ ссылаться на проект вне области родительской папки ('root' в Примере).

во многих платформах / модулях вы можете использовать '.."чтобы двигаться в папках, но это не сработало для меня, возможно, я использовал его неправильно.

кто-нибудь знает, как этого можно достичь с помощью Gradle в?

обновление

я постараюсь быть более общим:

/C:/

  /Project A
    + Module 1 - Pure Java
    + Module 2 - Android Test Lib
    + Module 3 - Android Test Project

  /Project B
    + Module 1 - Pure Java
    + Module 2 - Pure Java
    + Module 3 - Pure Java

Я хотел бы использовать модуль 1 проект B,в проекте.

6 129

6 ответов:

предполагая, что какая-то другая папка является проектом gradle, вы можете добавить что-то вроде следующего в свои настройки.файл gradle:

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

вы должны положить в файле настройки.gradle этой строки:

include ':module2'
project(':module2').projectDir = new File(settingsDir, '../Project 2/Module2')

затем вы должны добавить в свой builde.gradle (модуль: приложение) на зависимости дерево, вот эту строку:

compile project(':module2')

или идите в Структура Проекта>app>зависимости, нажмите кнопку добавить выберите 3. Зависимости Модуля и выберите модуль

С Gradle 1.10 (не знаю, какие другие версии это будет действительно для) это то, что я придумал на основе ответа, приведенного здесь http://forums.gradle.org/gradle/topics/reference_external_project_as_dependancy

у меня есть проект библиотеки api, общий проект библиотеки и основной проект приложения. Каждый из них является автономным проектом разработки, и эти две библиотеки предназначены для совместного использования несколькими приложениями.

в настройках.грейфер для общий проект:

def apiLibDir = file('../android-api/android-api-lib')
def rootProjectDescriptor = settings.rootProject
settings.createProjectDescriptor(rootProjectDescriptor, 'android-api-lib', apiLibDir)
include ':android-api-lib'

затем в основных настройках проекта приложения.Gradle в:

def apiLibDir = file('../android-libs/android-api/android-api-lib')
def rootProjectDescriptor = settings.rootProject
settings.createProjectDescriptor(rootProjectDescriptor, 'android-api-lib', apiLibDir)
include ':android-api-lib'

def commonLibDir = file('../android-libs/android-common/android-common-lib')
settings.createProjectDescriptor(rootProjectDescriptor, 'android-common-lib', commonLibDir)
include ':android-common-lib'

В каждой соответствующей сборке.файлы gradle вы просто ссылаетесь на них по имени, которое вы дали им в настройках.createProjectDescriptor, как и любой другой проект зависимости:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile project(':android-api-lib')
    compile project(':android-common-lib')
}

Это, кажется, работает. Он даже не выдал ошибку для нескольких файлов DEX, определяющих библиотеку api, я подозреваю, потому что все это было частью одного и того же процесса сборки, и Gradle был достаточно умен, чтобы во всем разобраться.

щелкните правой кнопкой мыши на проекте-выберите "Открыть Настройки модуля "- выберите" модули "в левой панели - нажмите на символ" + "сверху-выберите"Импорт модуля".

после импорта модуля. Вы должны добавить его в качестве зависимости для вашего текущего проекта.

выберите "модули" в левой панели и нажмите на свой проект-Теперь перейдите на вкладку зависимости и нажмите на символ"+", который находится внизу-выберите третий вариант "зависимости модулей" , и если вы импортировали свой проект правильно, он покажет вам все доступные модули, которые могут быть добавлены в зависимости от вашего текущего проекта.

я переспрашиваю этот вопрос таким образом, который влечет за собой намерения оригинальных плакатов в Как мы ссылаемся на пользовательские библиотеки Android и Java, живущие за пределами каталога нашего Основного проекта Android?

там я отвечаю на свой собственный вопрос. В основном мой ответ использует @Ethan (автор выбранного ответа в текущем потоке) gradle coding insight. Но мой ответ также перемещает некоторые другие gotchas и предоставляет подробный пошаговый пример.

Как сказал Итан, если вы добавите это в свои настройки.gradle, он добавит внешний проект в Android Studio (в этом примере он находится в родительской папке):

project(':../ProjectB/:module1')

затем, чтобы добавить его в качестве зависимостей для одного из ваших проектов, просто добавьте его в сборку.gradle этого проекта как еще одна зависимость, как это (вы также можете сделать это графически как тут):

compile project(':../ProjectB/:module1')