具有gradle的本地模块依赖性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了具有gradle的本地模块依赖性相关的知识,希望对你有一定的参考价值。

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

一切开始顺利。我创建了一个新的gradle项目,移动了我的资源和资源,并摆脱了我们挂在/libs文件夹周围的所有主要第三方库.jars,以便可以利用新的gradle Maven中央依赖项。那里没有问题。

现在,我试图找到一种很好的方法来建立对不在maven Central上的较不流行的模块的依赖关系。我使用了一些依赖的小型android模块(例如,表单验证器,helper util模块等)。问题在于这些模块不只是.jars,还具有资源。据我所知,我不能仅仅将这些模块放在/libs文件夹中,并对其建立依赖关系。我已经阅读了.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'
} 
答案

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

另一答案

您当前可以使用JitPack。

以上是关于具有gradle的本地模块依赖性的主要内容,如果未能解决你的问题,请参考以下文章

gradle导入具有传递依赖性的本地jar

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

Android gradle 动态添加模块依赖

Android Gradle 插件自定义 Gradle 插件模块 ④ ( META-INF 中声明自定义插件的核心类 | 在应用中依赖本地 Maven 仓库中的自定义 Gradle 插件 )

IntelliJ - 具有多个互连(!)模块的Gradle项目

如何管理 Gradle 模块之间的依赖关系?