与gradle的本地模块依赖关系

时间:2015-01-06 07:41:10

标签: android intellij-idea android-gradle dependency-management build.gradle

我最近决定将我的android项目从ant切换到gradle构建系统。手动管理我们团队成员之间的库和模块依赖关系很快就变成了太多的工作。

一切都顺利开始了。我创建了一个新的gradle项目,移动了我的资源和资源,并且已经摆脱了我们/libs文件夹中所有主要的第三方库.jars,因此我可以使用新的gradle maven中心依赖。没问题。

现在我正在尝试找到一种很好的方法来设置一些不受maven中心不太流行的模块的依赖关系。我使用了一些我已经依赖的小型android模块(例如表单验证器,辅助工具模块等)。问题是这些模块不仅仅是.jars,而且还有资源。据我所知,我不能将这些模块放在我的/libs文件夹中,并让gradle设置依赖项。我已经阅读了.aar文件了一下,我正在寻找一些关于它们是否是我的问题的答案的建议,或者我忽略了一些简单的事情。下面是我当前的目录结构(带有一些注释)和我的gradle.build

目录结构

/<project-directory>
    /build
    /gradle
    /<application-directory>
        /build
        /src
        /libs <-- where I would expect to put non-maven modules
            /Form-Validator <-- MyApplication depends on this module
                /build.gradle
                /src
                    /java
                    /res
                    ... etc etc etc
            /Other-Module
        /build.gradle (seen below)

的build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.14.2'
    }
}
apply plugin: 'com.android.application'

repositories {
    jcenter()
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}

android {
    compileSdkVersion 21
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "com.#####.############"
        minSdkVersion 16
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.android.support:support-v4:21.0.3'
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.android.support:cardview-v7:21.0.3'
    compile 'com.android.support:recyclerview-v7:21.0.3'
    compile 'com.google.code.gson:gson:2.3.1'

    compile 'com.squareup.retrofit:retrofit:1.8.0'
    compile 'com.squareup.okio:okio:1.1.0'
    compile 'com.squareup.okhttp:okhttp:2.2.0'
    compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0'

    compile 'com.github.bumptech.glide:glide:3.4.0'
} 

1 个答案:

答案 0 :(得分:0)

您可以将本地maven存储库添加到build.gradle:

repositories {
    jcenter()
    mavenCentral()
    mavenLocal()
    flatDir {
        dirs 'libs'
    }
}

本地存储库的位置取决于操作系统。在Linux中它是 $ HOME / .m2目录/存储库