【Android Gradle 插件】Android Studio 工程 Gradle 构建流程 ② ( settings.gradle 构建脚本分析 | 根目录下 build.gradle 分析 )

这篇具有很好参考价值的文章主要介绍了【Android Gradle 插件】Android Studio 工程 Gradle 构建流程 ② ( settings.gradle 构建脚本分析 | 根目录下 build.gradle 分析 )。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。





一、settings.gradle 构建脚本分析




1、Maven 远程仓库配置


pluginManagement 脚本块 ,

  • 用于 配置 Gradle 插件的 Maven 仓库 ,
  • 配置的是 构建过程 中 , 使用的仓库 ;

dependencyResolutionManagement 脚本块 ,

  • 用于 配置 依赖 的 Maven 仓库 ,
  • 配置的是 工程 或 模块 下的依赖使用的仓库 ;

在 dependencyResolutionManagement 脚本块 中 定义的 repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) 代码的含义是 解析依赖时 , 只能使用本脚本块中的 Maven 仓库 , 不能使用 Module 子项目中的依赖 ;


repositoriesMode 模式有两种 :

  • RepositoriesMode.PREFER_PROJECT : 解析依赖库时 , 优先使用本地仓库 , 本地仓库没有该依赖 , 则使用远程仓库 ;
  • RepositoriesMode.FAIL_ON_PROJECT_REPOS : 解析依赖库时 , 强行使用远程仓库 , 不管本地仓库有没有该依赖库 ;

参考之前的 【Android Gradle 插件】Android 依赖管理 ② ( 为工程配置依赖仓库 | 为工程构建添加依赖仓库 | classpath 引入依赖库 | 配置依赖仓库 ) 博客中的配置 ,

  • pluginManagement 脚本块中的 repositories 配置 , 对应之前的 buildscript 中的 repositories 配置 ;
  • dependencyResolutionManagement 脚本块中的 repositories 配置 , 对应之前的 allprojects 中的 repositories 配置 ;

android setting.gradle,Android Gradle 插件,android,android studio,gradle,settings.gradle,build.gradle


2、目录配置


settings.gradle 构建脚本中的目录设置 :

  • rootProject.name 用于指定工程根目录 , 在该目录下有一个 build.gradle 构建脚本 , 声明后会自动执行该构建脚本 ;
	rootProject.name = "LiveDataDemo"
  • include 用于指定子项目 , 在子项目中也有一个 build.gradle 构建脚本 , 声明后会自动执行该构建脚本 ;
	include ':app'

3、完整代码示例


完整代码示例 :

pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
        mavenCentral()
    }
}
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
    }
}
rootProject.name = "LiveDataDemo"
include ':app'




二、根目录下 build.gradle 构建脚本分析



根目录下 build.gradle 构建脚本如下 :

// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
    id 'com.android.application' version '7.3.1' apply false
    id 'com.android.library' version '7.3.1' apply false
    id 'org.jetbrains.kotlin.android' version '1.7.20' apply false
}

在 plugins 中使用

id 'com.android.application' version '7.3.1' apply false

配置 Gradle 插件 , 下面分析每个配置的含义 :

  • 引入 com.android.application 插件 ,
  • version '7.3.1' 说明引入插件的版本号 ,
  • apply false 表示当前不会马上引用该插件 , 在 Module 子项目 中使用到该插件时 , 才能正式应用 ;

在此处 主要是为了说明 Gradle 插件的版本 , 没有其它含义 ;


如 : 在 Module 子项目中 , 有如下配置 :

plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
}

则会立刻应用 com.android.applicationorg.jetbrains.kotlin.android Gradle 插件 , 此处就不会有插件版本了 ;


在之前的 build.gradle 配置 中 , 在 " buildscript / dependencies / classpath " 中 , 配置 Android Gradle 插件版本 是 4.2.1 , 也就是

  • com.android.application
  • com.android.library

插件 的 版本 ;文章来源地址https://www.toymoban.com/news/detail-780057.html

buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.2.1'
    }
}

到了这里,关于【Android Gradle 插件】Android Studio 工程 Gradle 构建流程 ② ( settings.gradle 构建脚本分析 | 根目录下 build.gradle 分析 )的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android Studio 中的 gradle插件版本和gradle 版本号在哪里?

    在Andorid Studio 中,我们常常需要 修改gradle插件和gradle的版本号 ,使之能够对应上。 那哪个是Android Studio的插件版本呢,哪个是插件对应的gradle版本呢? 插件版本是在 最外层的build.gradle 中修改,如下所示: 而插件版本所对应的gradle版本是在 gradle-wrapper.properties 中修改: 当然

    2024年02月03日
    浏览(49)
  • android studio里面build.gradle文件说明,ndk版本和gradle插件关系

    一、上述的android gradle 插件版本和gradle版本 对应关系         Android Gradle 插件版本说明  |  Android 开发者  |  Android Developers           二、修改gradle版本(gradle-wrapper.properties文件),gradle插件版本(build.gradle文件)            NDK版本默认是根据配置Android Gradle插

    2024年02月16日
    浏览(49)
  • Android Studio 和 Android Gradle 插件的已知问题

    渲染 Compose 预览时出错 从 Android Studio Chipmunk 开始,如果您在问题面板中看到  java.lang.NoSuchFieldError: view_tree_saved_state_registry_owner  或  java.lang.ClassNotFoundException: androidx.savedstate.R$id ,请务必在模块中添加对  androidx.lifecycle:lifecycle-viewmodel-savedstate  的  debugImplementation  依赖项。

    2024年02月12日
    浏览(52)
  • Android Studio或IntelliJ IDEA 构建Gradle项目时,gradle下载时连接超时问题

    用IntelliJ IDEA 创建一个Gradle项目,下载gradle时显示连接超时。 问题如下 : 在项目根目录的gradle目录下,gradle-wrapper.properties文件定义了用于构建项目的gradle工具的下载地址 services.gradle.org 。由于该网站的服务器在国外,所以在国内访问可能存在连接超时问题,访问不到。 笔者

    2024年02月04日
    浏览(67)
  • Android Studio插件版本与Gradle 版本对应关系

    关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 我们继续总结学习 基础知识 ,温故知新。 本文记录android studio插件版本 与 所需的最低 Gradle 版本的

    2024年02月08日
    浏览(54)
  • cocos构建 Android 项目Android studio gradle 8.0 报错

    记录一下踩坑 今天用cocos构建 了一个Android 项目 然后用Android studio 打开 TestProject_Helloworldbuildandroidproj 项目, 由于我的Android studio 用的是jdk17, 所以提示要升级gradle 插件版本,所以我升级成了gradle 8.0 . 但是编译的时候报错 Namespace not specified. Please specify a namespace in the modu

    2024年02月16日
    浏览(111)
  • 关于Android Studio使用Gradle构建时,依赖下载过慢的方案

    每个As人都应该被gradle下载问题困扰过。网上也有很多类似文章教你怎么做。我也把配置贴出来。 很多文章都是把repositories闭包当中的配置这么写: 这个时候你配置的镜像包没有发挥作用。gradle下载依赖的时候会从这几个仓库当中一路找下来。假如你需要下载一个 abc.jar 的依

    2024年02月04日
    浏览(55)
  • 新版android studio gradle插件7.4.2.pom一直无法下载问题

    android studio同步时候出现org.gradle.api.plugins.UnknownPluginException,Plugin [id: \\\'com.android.application\\\', version: \\\'7.4.2\\\'] was not found in any of the following sources: pom插件一直无法下载,搞了好几天,简直想砸电脑,今天烦躁,乱搞了一通,结果好像可以了。 是android studio代理问题:         默

    2024年02月01日
    浏览(44)
  • 【错误记录】Android Studio 中最新的 Gradle 配置中设置插件依赖 ( 2023 年 8 月 24 日 | 最新 Gradle 中配置插件依赖的变化 | 增加 Maven 仓库源 )

    当前最新的 Android Studio 开发环境 , 生成的 Gradle 配置脚本使用了最新 API , 用起来不太习惯 ; 根目录下的 build.gradle 构建脚本变成了下面的样式 , 单纯的用于配置 Android 应用编译所需插件的 插件 和 版本 ; 原来应用中配置插件 , 是在 根目录下的 build.gradle 中的 buildscript / depend

    2024年02月07日
    浏览(53)
  • 关于高版本Android Studio使用KTS(koltin)作为脚本代替Gradle构建的细节

    前两天刚刚才写了安卓构建下载太慢的博客,今天新建项目又用到kotlin作为脚本构建项目时出新问题。一开始我是直接从自己的文章复制粘贴到新项目的gradle当中,结果上来就报好几个红,给我人干懵了。 Unexpected tokens (use \\\';\\\' to separate expressions on the same line) 后知后觉发现自己

    2024年02月05日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包