Использование Gradle с существующим проектом Android

У меня есть существующий проект Android со следующей структурой:

- ProjectName
-- AndroidManifest.xml
-- local.properties
-- project.properties

-- assets
-- libs    (containing all jars)
-- modules (containing all library projects my project depends on)
-- res

-- src
---- com/namespace/projectname (all my classes including main activity are here)

Я не использовал какую-либо конкретную систему сборки для создания моего проекта, отличного от того, который был предоставлен по умолчанию с помощью Android Studio IDE (хотя проект был первоначально создан с помощью IntelliJ CE.

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

Какой рекомендуемый подход в этом сценарии? следует ли изменить структуру проекта? или можно настроить Gradle на существующую структуру?

Любая помощь будет принята с благодарностью.

Спасибо!

Ответ 1

Какой рекомендуемый подход в этом сценарии? я должен изменить свой структура проекта? или можно настроить gradle, используя существующая структура?

Совершенно можно настроить gradle на существующую структуру.

Вам нужно добавить build.gradle для каждого проекта библиотеки. Вам также необходимо добавить файлы build.gradle и settings.gradle в корневую папку проекта.

Должно быть так:

  ProjectName
    build.gradle     <<<<<<
    settings.gradle  <<<<<<
    AndroidManifest.xml
    local.properties
    project.properties
    assets
    res
    src
    libs    
    modules 
       module1
          build.gradle  <<<<<<
       module2
          build.gradle  <<<<<<
       module3
          build.gradle  <<<<<<

В settings.gradle вам нужно включить все папки проектов, если ваш основной проект был в подпапке, он также должен быть включен, что не так.

settings.gradle должен выглядеть следующим образом:

include ':modules:module1', ':modules:module2', ':modules:module2'

build.gradle основного проекта должен иметь:

dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
        compile project(':modules:module1') 
        compile project(':modules:module2') 
        compile project(':modules:module3') 
}

Ответ 2

Просто установите gradle на свой компьютер и убедитесь, что все пути в порядке.

После этого создайте файл build.gradle в папке Project.

Вот базовый пример, который можно начинать с:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.4.+'
    }
}

apply plugin: 'android'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':yourModuleName') 
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 16
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        instrumentTest.setRoot('yourTestRoot')
    }
}

Чтобы адресовать свои модули, как я сделал в блоке dependenciey, вам нужно создать файл settings.gradle и ссылаться на ваши модули как на проект. Поскольку я предполагаю, что у них также есть собственный макет, вы также должны создавать файлы build.gradle в папке с модулем.

Для установки settings.gradle вы должны посетить документацию gradle , здесь ничего конкретного не указано.