Gradle配置

Gradle构建全局配置

全局参数
在项目根目录下的build.gradle中,通过ext领域可以指定全局的配置信息,代码如下:

ext {
    compileSdkVersion = 24
    buildToolsVersion = "24.0.2"
    minSdkVersion = 14
    targetSdkVersion = 24
    versionCode = 1
    versionName = "1.0"
}

这些配置基本上是整个项目的总体配置,下面的每个module都需要按照这个方式来进行配置,而不是在某个module中单独使用单独的配置。
引用配置
在配置好全局参数后,就可以在每个module中使用这些配置了,例如在一个module中,可以通过以下代码获取全角配置。

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    }

另外,开发者也可以把ext全局配置写在allprojects领域中,这样在每个module中就可以直接引用申明的变量了。

allprojects {
    repositories {
        jcenter()
    }
    ext{
        COMPILE_SDK_VERSION = 24
        ``````
    }
}

这样写的好处是可以将配置进行统一管理,但坏处是如果这样写的话,Gradle的版本更新通知检查机制就无效了。大部分的时候,这种写法利大于弊。

构建buildTypes

构建类型基础
除了系统默认的构建type—debug和release之外,gradle同样支持自定义创建新的构建类型。例如,在脚本中增加一个xys类型,同样设置该类型的applicationIdSuffix参数为”.xys”,代码如下:

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        xys{
            applicationIdSuffix ".xys"
        }
    }

执行build命令,可以发现生成的apk如图所示:
这里写图片描述

参数applicationIdSuffix的作用是为默认的包名添加一个后缀。

构建类型buildTypes的继承

buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        xys.initWith(buildTypes.debug)
        xys{
            applicationIdSuffix ".xys"
        }
    }

通过以上代码,xys构建类型就继承了默认的debug构建类型的配置,同时还添加了自定义配置。

构建类型参数
在配置构建类型时,还可以配置很低参数来区分不同的构建类型,文档中给出恶劣详细的参数列表,以及这些参数在debug\release&other类型下的默认值。
这里写图片描述

构建参数和方法:
http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.BuildType.html

构建singingConfigs和签名

生成签名

在android studio中,选择Build/Generate Signed APK选项,如图:
这里写图片描述

选择默认的module,点击Next,在界面中选择“Create new···”,如图所示:

这里写图片描述

在弹出的界面中,输入签名所需要的相关信息,如图所示:

这里写图片描述

通常会把签名文件的保存路径选择到主module的根目录下,这样引用起来比较方便。另外android studio中,签名文件不再是.keystore文件,而是.jks文件。点击OK,系统会自动生成相应的签名文件,如图:
这里写图片描述

配置签名

生成签名文件之后,就可以在build.gradle脚本的android领域中配置签名的相关信息。

signingConfigs{
        xys {
            storeFile file("/keystore/demo.jks")
            storePassword "ct123456"
            keyAlias "xys"
            keyPassword "ct123456"
        }

使用签名

配置好相关的签名信息后, 就可以在构建类型的时候加入签名的设置。这样生成的apk就会包含签名版和未签名版两种,完整的配置如下所示。

signingConfigs{
        xys {
            storeFile file("/keystore/demo.jks")
            storePassword "ct123456"
            keyAlias "xys"
            keyPassword "ct123456"
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }
        xys{
            signingConfig signingConfigs.xys
            applicationIdSuffix ".xys"
        }

脚本中设置了xys的签名,而没有给release设置签名,因此,在执行gradle build指令后,生成的apk如图:
这里写图片描述

<think> 根据用户的问题和系统级指令,用户希望获取Gradle配置的相关信息。结合用户提供的站内引用,我需要整理关于Gradle配置的方法和相关信息。 回顾引用内容: - 引用[1]提到Gradle配置的优先级、初始配置、常用配置以及Gradle 7.0前后的差异,还有Android核心配置的源码分析。 - 引用[2]强调Gradle与Maven的依赖管理差异。 - 引用[3]说明Android Studio中手动安装Gradle的方法,特别是通过修改distributionUrl来指定项目使用的Gradle版本。 - 引用[4]详细描述了手动下载Gradle配置环境变量以及指定依赖存储路径的方法。 用户需求:获取Gradle配置方法和相关信息。 回答结构: 1. Gradle配置基础:介绍配置文件位置和优先级。 2. 常用配置项:包括仓库、依赖、插件等。 3. 版本配置:如何指定Gradle版本(wrapper vs 手动安装)。 4. 环境变量配置:全局设置。 5. 依赖存储路径:修改默认缓存位置。 6. 配置示例:提供代码片段。 注意事项: - 使用中文回答。 - 行内数学表达式用$...$(但本问题可能不涉及数学公式,可不使用)。 - 独立公式用$$...$$(本问题可能不需要)。 - 生成相关问题。 - 引用的末尾添加引用标识[^n]。 由于引用内容较多,需整合信息,避免直接复制。 </think> ### Gradle配置方法与相关信息 根据站内引用内容,以下是Gradle配置的核心方法和关键信息: #### 1. **配置优先级与基础概念** - Gradle配置优先级:项目配置 > 用户主目录配置 > 全局配置[^1]。 - Gradle 7.0+ 对配置语法进行了优化(如依赖声明方式变更),需注意版本兼容性[^1]。 #### 2. **版本配置方法** - **Wrapper方式(推荐)** 修改项目目录下的 `gradle-wrapper.properties` 文件: ```properties distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.2-bin.zip ``` 此配置决定项目使用的Gradle版本,不同项目可独立指定版本[^3]。 - **手动安装方式** 步骤: 1. 从[Gradle官网](https://services.gradle.org/distributions/)下载所需版本(如7.3.2)[^4] 2. 解压文件并配置全局环境变量: ``` GRADLE_HOME = D:\software\gradle-7.3.2 PATH = %GRADLE_HOME%\bin ``` 3. 验证安装:终端执行 `gradle -v` 显示版本信息即成功[^4] #### 3. **依赖存储路径配置** - 默认路径:`$USER_HOME/.gradle/caches/modules-2` - 自定义路径(避免C盘占用): ```properties # 在gradle.properties中指定 gradle.user.home = D:\software\gradle-repository ``` 此配置会覆盖默认依赖缓存位置[^4]。 #### 4. **核心配置项** - **仓库配置**:在 `build.gradle` 中声明仓库源 ```groovy repositories { mavenCentral() // Maven中央仓库 google() // Android专用仓库 } ``` - **依赖管理**:Gradle使用声明式依赖(优于Maven的XML配置)[^2] ```groovy dependencies { implementation 'com.android.tools.build:gradle:7.3.1' testImplementation 'junit:junit:4.13.2' } ``` #### 5. **Android项目特殊配置** - Android Studio通过 `settings.gradle` 加载插件: ```groovy pluginManagement { repositories { google() // 必须声明google仓库 } } ``` - 构建变体配置(如debug/release)在 `build.gradle` 的 `android{}` 块中定义[^1]。 > **注意**:若同时存在Wrapper配置和环境变量配置,**Wrapper优先级更高**(引用[4]中手动配置需删除`gradle-wrapper.properties`文件才生效)[^3][^4]。 --- ### 相关问题 1. Gradle 7.0+ 与旧版本的主要配置差异有哪些?[^1] 2. 如何解决Gradle依赖下载缓慢或失败的问题?[^2][^4] 3. 在多模块项目中如何统一管理Gradle依赖版本? 4. Gradle的增量编译机制如何提升构建效率?[^1]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值