Gradle笔记(二)-------从管理和发布

本文介绍Gradle中变量定义及使用方式,包括局部变量与全局变量的区别,并演示如何利用Gradle实现自动化签名,简化APK发布流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可以在ext块中定义变量,例如:

ext {
    def AAVersion = '4.0-SNAPSHOT' // change this to your desired version
}
dependencies {
    apt "org.androidannotations:androidannotations:$AAVersion"
    compile "org.androidannotations:androidannotations-api:$AAVersion"
}

使用def定义变量,定义的是局部变量,只能在这个build.gradle文件里面用,不用def定义这个变量,这个变量是全局变量,在子工程中也可以使用。

def 用来定义方法,属性和本地变量

也可以在gradle.properties中以key-value的形式定义:

login='user'
pass='my_long_and_highly_complex_password'

在build文件中这样使用:

repositories {
    maven {
        url 'http://repo.mycompany.com/maven2'
        credentials {
        //使用了login变量和pass变量
        username login
        password pass
        }
    }
}

变量也可以在命令行中获得,这里就不介绍了。

也可以动态的改变变量值:

ext {
    if (!project.hasProperty('user')) {
        user = 'user_from_build_file'
    }
    if (!project.hasProperty('pass')) {
        pass = 'pass_from_build_file'
    }
}
task printProperties() {
    doLast {
        println "username=$user"
        println "password=$pass"
    }
}

Android studio并没有需要我们手动下载GradleGradle的下载和安装是由AS提供的的Wrapper脚本自动完成的。所以我们想要更新Gradle,有以下两种方法:

1.在 build.gradle文件中增加一个Wapper TasK来生成一个新的wrapper脚本。

例如:使用./gradlew wrapper --gradle-version 2.12名流就可以生成下载指定Gradle版本的wrapper。

也可以在顶层build.gradle中建立Gradle wrapper task如下:

task wrapper(type: Wrapper) {
    gradleVersion = 2.12
}

2.编辑 gradle-wrapper.properties的distributionUrl属性,distributionUrl告诉wapper去哪里下载gradle。

通过第一种方法更新gradle只会更新可执行文件(bin文件),但是不会更新文档和源码,AS会提示你下载源码和文档。

如何把子项目中的配置共同抽取出来?
可以在顶层build文件中使用allprojects属性,例如:

allprojects {
    repositories {
        jcenter()
    }
}

注:个人认为allprojects就是Groovy的一个闭包,gradle会遍历所有的工程然后调用这个闭包以达到所有工程都应用这个配置的目的

表示当前工程和子工程(moudle)都使用jcenter作为远程仓库。

也可以使用subprojects属性

subprojects {
apply plugin: 'com.android.library'
}

这表明所有子工程都是用com.android.library插件,但是父工程不使用。


也可以以使用Gradle进行apk签名而不使用手动签名,这就要用到一个signingConfigs

android {
// ... other sections ...
    signingConfigs {
        //发布签名
        release {
            //别名
            keyAlias 'my_alias'
            //签名过程中使用的密码
            keyPassword 'password'
            //签名文件存储的地方
            storeFile file('/Users/kousen/keystores/myapp.keystore')           //keystore的密码
            storePassword 'password'
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值