Android多个Module统一配置相同jar或库的版本号

Android Studio多个Module依赖相同的库时对版本号进行统一配置

在Android项目中,一个项目经常会依赖其他的一个甚至多个库文件,在这种依赖的时候最常见的一个错误就是 jar包版本不同引起jar包冲突,最常见的做法就是 删掉其中一个,只留下一个,就不会发生版本不同的问题了(但是也有的时候可能不能删除)。所以就有另外一种解决方案 将所有的相同的jar包修改成相同的版本号 就可以了。但是像一些常用的包,每个依赖的Module中可能都有,导致我们 每一次修改版本的时候都需要查找每个Module看是否引用了相同的库文件,非常麻烦,要是有一种方法能够对所有的版本号进行统一配置就好了,我们只需要修改一下配置,其他的地方就都不用改了。这篇博客就说一下在Android Studio 中对多个Module中的相同依赖进行版本号的统一配置和管理几种方式(包括compileSdkVersion、buildToolsVersion等)。
方式一

在项目根目录下新建文件 config.gradle,如下图:
    第一步
    将新建的配置文件引入到项目中:在 项目的 build.gradle 文件 中添加 apply from: "config.gradle"
    第二步
    在 自己新建 config.gradle文件中指定版本号:
    第三步
    在 各个Module的 build.gradle 文件中引入 版本号:
    第四步

方式二

不创建 xxx.gradle 文件,直接 将原本写在 config.gradle 中的内容写在项目根目录的build.gradle 文件 中:

buildscript {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath ‘com.android.tools.build:gradle:2.3.1‘
        classpath ‘com.jakewharton:butterknife-gradle-plugin:8.8.1‘

// NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

ext {
    COMPILE_SDK_VERSION = 26
    BUILD_TOOLS_VERSION = "26.0.2"
    MIN_SDK_VERSION = 14
    TARGET_SDK_VERSION = 26
    ANDROID_SUPPORT_V7 = "26.1.0"
    ANDROID_SUPPORT_CONSTRAINT = "1.0.0-beta4"
    JUNIT_SUPPORT = "4.12"
    RXJAVA_VERSION = "2.0.1"
    RETROFIT_VERSION = "2.2.0"
    DAGGER_VERSION = "2.10"
    BUTTERKNIFE_VERSION = "8.8.1"
    JETBRAINS_ANNOTATIONS_VERSION = "15.0"
}

如上,最后一段在 ext {} 中的代码就是定义版本号,在Module的 build.gradel 文件中引入版本号和方式一一样。
第四步
方式三
在方式二的基础上进行改变,在 ext{} 中引入新的变量 ver(随意命名)。

修改 项目根目录下的 build.gradle 文件 ext 的内容 如下:

ext {
        ver = [
                BUTTERKNIFE_VERSION : "8.8.1",
                DAGGER_VERSION : "2.10",
                JETBRAINS_ANNOTATIONS_VERSION : "15.0"
        ]
    }

在 各个 Module 中的 build.gradel 文件中引入版本号 方法:

compile ‘com.google.dagger:dagger:‘ + ver.DAGGER_VERSION
    annotationProcessor ‘com.google.dagger:dagger-compiler:‘ + ver.DAGGER_VERSION
    compile ‘com.jakewharton:butterknife:‘ + ver.BUTTERKNIFE_VERSION
    annotationProcessor ‘com.jakewharton:butterknife-compiler:‘ + ver.BUTTERKNIFE_VERSION

随便一看,好像和上面的一样,根本就没区别;仔细看一下哦,还是 有区别的,在前面 多了我们自定义从变量名加.(点) ver.。

扩展一点

上面的三种方式,我们都是将 依赖库的版本号 放入到配置文件或者 项目根目录的 ext{} 中。其实我们也可以 将完整的 依赖库 + 版本号 都放入到它们的位置也是可以的,具体做法如下:

修改 项目根目录下的 build.gradle 文件 ext{} 的内容 如下:

ext {
        RETROFIT_VERSION = "2.2.0"
        CONVERTER_GSON = ‘com.squareup.retrofit2:converter-gson:‘ + RETROFIT_VERSION
        CONVERTER_SCALARS = ‘com.squareup.retrofit2:converter-scalars:‘ + RETROFIT_VERSION
        ver = [
                retrofit : ‘com.squareup.retrofit2:retrofit:‘ + RETROFIT_VERSION,
                adapterRxjava2 : ‘com.squareup.retrofit2:adapter-rxjava2:‘ + RETROFIT_VERSION,
        ]
    }

在 各个 Module 中的 build.gradel 文件中引入版本号 方法:

dependencies {
        // ... 其他的依赖
        compile CONVERTER_GSON
        compile CONVERTER_SCALARS
        compile ver.retrofit
        compile ver.adapterRxjava2
    }

当我们对这些信息进行统一配置之后,以后需要修改版本号时就不需要一个一个Module的检查一遍了,只需要修改配置信息就可以了,是不是方便很多了呢?

原文地址:https://www.cnblogs.com/Free-Thinker/p/10303053.html

时间: 2024-10-09 21:29:41

Android多个Module统一配置相同jar或库的版本号的相关文章

Android OS 源码 引入和编译 jar / so库

Android -- 源码平台下JAR包的引入与编译https://blog.csdn.net/csdn_of_coder/article/details/64538227 BUILD_JAVA_LIBRARY 与 BUILD_STATIC_JAVA_LIBRARY 在Android.mk中可通过调用include $(BUILD_JAVA_LIBRARY)和include $(BUILD_STATIC_JAVA_LIBRARY)来分别生成目标设备上的共享JAVA库与静态JAVA库. 二者的区别

Android 100多个Styles快速开发布局XML,一行搞定View属性,一键统一配置UI...

Android开发中大量使用XML代码作为界面的布局,使用styles能大幅精简XML代码. 比如下面这个界面从AlertDialog至PlacePickerWindow有19个样式相同的跳转Item,点击后颜色加深并跳转界面. 使用styles前XML代码是这样的(838行): 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://s

gradle 统一配置

gradle 统一配置 Android 当项目中要使用或者导入比较多的module的时候,为每一个module管理一些插件版本是很重复的一件事情 所以需要寻找一种能够对重复配置进行统一管理的方法 在project 根目录,新建 config.gradle文件 在这里配置你需要统一管理的元素 # ext 是必须的,且只能用这个名字 ext {  // Version of compile sdk  COMPILE_SDK_VERSION = 23  // Version of Android bu

Android jPBC 2.0.0配置与测试

我在前面的一片博客中,介绍了jPBC 2.0.0在PC平台上面的配置和测试.既然jPBC是Java平台上面实现的,那么jPBC能不能在Android这个以Java为主要语言的平台上运行呢?这样一来,各种在jPBC上撰写的有关双线性对的函数就都能够在移动终端上面用了.我个人的想法就是把最新的密码学算法应用到工程里面,而这确实是我想法的一个很好的跨越.因此,我在第一时间公开整个配置的过程以及我测试的方法,以供广大国内密码学研究者们进行尝试.整个配置过程实际上是非常简单的,这也要感谢jPBC库的编写者

android studio学习----通过gradle来导入jar包

转载地址:http://www.th7.cn/Program/Android/201507/495477.shtml File->Project Structure 可以打开下面的图: 1.通过gradle配置第三方jar包 我们看到,每个module都有一个build.gradle文件,它其实是对应module的配置文件.关于build.gradle文件中具体内容的含义,我们将在最后一段进行讲解. 我们先来看一下名为app的这个module,它的build.gradle对应的图形界面其实是下面

[Android Studio] *.jar 与 *.aar 的生成与*.aar,jar,第三方库项目导入项目方法

主要讲解Android Studio中生成aar文件以及本地方式使用aar文件的方法. 在Android Studio中对一个自己库进行生成操作时将会同时生成*.jar与*.aar文件. 分别存储位置: *.jar:库/build/intermediates/bundles/debug(release)/classes.jar *.aar:库/build/outputs/aar/libraryname.aar 两者区别: *.jar:只包含了class文件与清单文件,不包含资源文件,如图片等所有

android代码规范和studio配置CodeStyle

studio配置CodeStyle可以很好的帮助我们检测代码规范性,保持大家的代码统一,来看看怎么配置和使用吧 代码规范,自己公司的一套 代码规范 一.      简介 A.    目的 本文提供一整套编写高效可靠的 Java代码的标准.约定和指南.它们以安全可靠的软件工程原则为基础,使代码易于理解.维护和增强.而且,通过遵循这些程序设计标准,你作为一个 Java软件开发者的生产效率会有显著提高.经验证明,若从一开始就花时间编写高质量的代码,则在软件开发阶段,对代码的修改要容易很多.最后,遵循一

100多个Styles快速开发布局XML,一行搞定View属性,一键统一配置UI...

Android开发中大量使用XML代码作为界面的布局,使用styles能大幅精简XML代码. 比如下面这个界面从AlertDialog至PlacePickerWindow有19个样式相同的跳转Item,点击后颜色加深并跳转界面. 使用styles前XML代码是这样的(838行): 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://s

安装android studio 出现的路径问题 tools.jar&#39; seems to be not in Android Studio classpath

尝试一下android studio  ,谁知出现路径问题 'tools.jar' seems to be not in Android Studio classpath. Please ensure JAVA_HOME points to JDK rathe jre. 打开就出现此错误提示. 百度后网上一致认为是环境变量配置错误,试了很久根本无效. 后来确实没法了,观察提示说:Android Studio classpath中没有tools.jar: 找不到,那就将jdk中的tools.jar