【问题标题】:Android studio Gradle project scope dependencyAndroid studio Gradle 项目范围依赖
【发布时间】:2015-10-14 18:33:48
【问题描述】:

我有多个模块,每个模块都使用完全相同的依赖项。因为在所有 build.gradle 文件(版本更新等)中维护这种依赖关系很烦人,所以我想将它放在项目 build.gradle 中。请问可以吗?

我尝试过:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'          
        compile 'joda-time:joda-time:2.8.1'
    }
}
allprojects {
    repositories {
        jcenter()
    }
}

但这不起作用,因为 gradle 似乎无法找到 DSL 进行编译。请问还有其他方法吗?

谢谢

【问题讨论】:

    标签: android gradle module dependencies project


    【解决方案1】:

    这叫做在 gradle 中集中支持库依赖。使用多模块项目,集中依赖关系非常有用,尤其是支持库。

    http://gmariotti.blogspot.in/2015/07/how-to-centralize-support-libraries.html

    【讨论】:

    • 似乎是合法的。虽然我一直在寻找是否有办法将其仅写入顶级 build.gradle 并将其放入 allprojects 部分或其他东西:)
    【解决方案2】:

    如果我错了,请纠正我,但 buildscript 中的内容是构建的依赖项。

    当我生成我的项目 build.gradle 有注释:

    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:1.2.3'
            classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.1.1'
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }
    

    所以不,您不能将所有模块的依赖项放在这里,但也许有一个插件。

    【讨论】:

      【解决方案3】:

      您不能集中所有(子)项目的依赖关系,但很容易集中版本号。在 build.gradle 的根目录中添加:

      ext {
          jodaTimeVersion = '2.8.1'
      }
      

      build.gradle需要Joda-Time的模块中添加这个(注意双引号):

      dependencies {
          compile "joda-time:joda-time:${jodaTimeVersion}"
      }
      

      【讨论】:

        猜你喜欢
        • 2019-08-27
        • 1970-01-01
        • 2015-01-25
        • 1970-01-01
        • 2021-02-10
        • 2014-10-06
        • 2014-04-03
        • 2015-09-16
        • 1970-01-01
        相关资源
        最近更新 更多