Gradle本地化构建技巧之自定义Gradle配置文件_gradle implementation 本地-程序员宅基地

技术标签: gradle  android  

前言     

           当我们在Android Studio开发工具中创建一个新的工程项目时,Gradle会帮我们自动生成两个build.gradle配置文件,一个是项目主配置一个app的配置,为什么我们要自定义Gradle配置文件呢?想象一个场景,你的主Model app对应一个build.gradle配置文件,那么如果你有N个副Model那岂不是要对应N个build.gradle配置文件?由此可见我们需要自己定义一个配置文件用来管理,这样的好处有那些呢?1、统一性  2、便于管理 3、版本管理一致,操作如下。

          打开Android Studio开发工具,选中你的工程项目文件 --->右键鼠--->新建--->文件--->新建一个config.gradle配置文件【Ps:当然这个文件名字你随便起,但是后缀一定是 .gradle 】

操作步骤一

 

操作步骤二

             在config.gradle配置文件中你就可以自定义配置项,比如我这里把app目录下的build.gradle文件中的android配置,defaultConfig配置,dependencies配置通过我们自定义的config.gradle配置文件重新引入到build.gradle文件中。

app目录下的build.gradle文件

 

                首先打开config.gradle配置文件,在里面写上如下代码 ext代表范围 里面你可以写上多个配置项,现在我们把app目录下的build.gradle文件中对应的android配置给拷贝过来

ext{
    //Android配置
    android = [

    


]

  // 依赖配置
    dependencies = [



]
}
---------------------------------app目录下的build.gradle源配置文件-------------------

android {   // 抽取

    compileSdkVersion 29          // 抽取
    buildToolsVersion "29.0.3"    // 抽取

    defaultConfig {   // 抽取
        applicationId "com.mg.demo"  // 抽取
        minSdkVersion 16         // 抽取
        targetSdkVersion 29     // 抽取
        versionCode 1          // 抽取
        versionName "1.0"     // 抽取

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }


dependencies {     // 抽取
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'    // 抽取
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}


----------------------修改后config.gradle配置文件-----------------------------------

ext{
    // Android 配置
    android = [
            //名称您可以随便起但要有意义哦
            compileSdkVersion:29,
            buildToolsVersion:"29.0.3",
            applicationId:"com.mg.demo",
            minSdkVersion:16,
            targetSdkVersion:29,
            versionCode:1,
            versionName:"1.0",
            testInstrumentationRunner:"androidx.test.runner.AndroidJUnitRunner",
    ]
    //依赖配置
    dependencies = [
        //名称您可以随便起但要有意义哦
            "appcompat":'com.android.support:appcompat-v7:28.0.0',
    ]
}

        这样我们就把app目录下的build.gradle文件中部分配置项就抽取出来,然后放在自定义的config.gradle配置文件中,那么接下来就是该如何引入自定义配置文件了,很简单,打开你项目工程下的build.gradle配置文件,在里面写上如下这样一句代码

项目工程下的build.gradle配置文件
//引入自定义gradle配置文件
apply from:"config.gradle"
项目工程下的build.gradle配置文件

             接着打开你项目app目录下的build.gradle配置文件,然后通过 rootProject.ext.xxx.xxxx 引入

android配置引入

          

依赖引入
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40845165/article/details/106326969

智能推荐

docker — 容器存储_docker 保存容器-程序员宅基地

文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器

OKHTTP3的依赖包与 权限_okhttp3 依赖包-程序员宅基地

文章浏览阅读2.1k次。依赖包: compile 'com.squareup.okio:okio:1.5.0' compile 'com.squareup.okhttp3:okhttp:3.2.0' compile 'com.squareup.okhttp3:logging-interceptor:3.4.1' compile 'com.google.code.gson:gson:2.8.2'_okhttp3 依赖包

Windows 10 桌面路径修改问题解决方案_无法更改桌面路径-程序员宅基地

文章浏览阅读150次。最近我遇到了一个问题,我在 Windows 10 上不小心修改了桌面路径,但现在无法将其改回原来的路径。我想知道如何通过编程来解决这个问题。要解决这个问题,我们可以使用编程来修改桌面路径。下面是一个使用 Python 编程语言的示例,演示了如何通过注册表修改桌面路径。在修改桌面路径后,你可能需要重新启动 Windows Explorer 进程以使更改生效。如果你有任何其他问题,请随时提问。注意:在运行以上代码之前,请确保你具有管理员权限。函数来将桌面路径修改为新路径。变量设置为你想要的新路径,并调用。_无法更改桌面路径

VoLTE的前世今生...说清楚VoIP、VoLTE、CSFB、VoWiFi、SIP、IMS那些事_volte视频转语音原因-程序员宅基地

文章浏览阅读1.4k次,点赞3次,收藏22次。VoLTE就像一位优雅的败家姑娘,千呼万唤使出来!难免有人会在VoLTE与VoIP之间打量对比。关于两者之间的对比分析太多,尽管如此,也是依然一头雾水。我们今天就从她们的前世说起,希望能够说清楚关于VoIP、VoLTE、CSFB、VoWiFi、SIP、IMS那些事...从VoIP到VoLTE观察家们认为VoIP的出现起始于1995年,那个时候GSM刚进入中国。20年来,VoIP语音服..._volte视频转语音原因

JAVA中使用JSON进行数据传递_java 如何实现 动态json里面有个json 想js 一样进行连点拿去数据-程序员宅基地

文章浏览阅读773次。最近在做一个基于JAVA Servlet的WEB应用以及对应的Anroid应用客户端的开发工作。其中,在接口的访问和数据的传输方面使用的比较多的是使用JSON对象来操作格式化数据:在服务器端采用JSON字符串来传递数据并在WEB前端或者Android客户端使用JSON来解析接收到的数据。首先,在JAVA中使用JSON需要引入 org.json 包(点击这里 可以下载相应的JAR包!_java 如何实现 动态json里面有个json 想js 一样进行连点拿去数据

java对接Modbus_java modbus-程序员宅基地

文章浏览阅读1.6k次,点赞3次,收藏11次。Modbus是一种单主站的主/从通信模式,它定义了一种通讯规范,用于在工业自动化系统中实现设备之间的数据交换。Modbus网络上只能有一个主站存在,主站在Modbus网络上没有地址,而从站的地址范围为0-247,其中0为广播地址,从站的实际地址范围为1-247。Modbus通信协议可以通过多种传输方式传播,如RS232C、RS485、光纤和无线电等。它具有两种串行传输模式,即ASCII和RTU,它们定义了数据如何打包和解码的方式。_java modbus

随便推点

网络拓扑结构_网络拓扑csdn-程序员宅基地

文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn

JS重写Date函数,兼容IOS系统_date.prototype 将所有 ios-程序员宅基地

文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios

如何将EXCEL表导入plsql数据库中-程序员宅基地

文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql

Git常用命令速查手册-程序员宅基地

文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...

分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120-程序员宅基地

文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120

【C++缺省函数】 空类默认产生的6个类成员函数_空类默认产生哪些类成员函数-程序员宅基地

文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数