当前位置: 首页 > news >正文

公司网站别人做的怎么签合同买程序的网站

公司网站别人做的怎么签合同,买程序的网站,淄博做网站的网络公司,智慧团建手机登录入口电脑版pc端1. 前言 前几篇文章,我们对Gradle中的基本知识,包括Gradle项目结构、Gradle Wrapper、GradleUserHome、Groovy基础语法、Groovy语法概念、Groovy闭包等知识点,这篇文章我们接着来介绍Gradle构建过程中的知识点。 2. Project : Gradle中构建…

1. 前言

前几篇文章,我们对Gradle中的基本知识,包括Gradle项目结构、Gradle WrapperGradleUserHomeGroovy基础语法、Groovy语法概念、Groovy闭包等知识点,这篇文章我们接着来介绍Gradle构建过程中的知识点。

2. Project : Gradle中构建过程的基本单位

在Gradle构建工具中,Project是一个核心概念,它代表了一个独立的构建单元,对应到项目结构中的一个模块或者子模块(每个build.gradle文件代表一个Project)。

在Gradle的构建模型中,一个Project可以包含多个子Project,形成一个树状结构。根Project用于统筹管理所有的子Project,而每个子Project都对应一个输出,例如APK文件、aar文件或jar文件等。

一个build(构建过程)由一个或多个project组成。每个project可以有多个task。

3. Task : Gradle中最小的构建单元

Task字面翻译就是任务的意思,是Gradle中最小的构建单元,每个Task代表构建过程中的一项具体工作或操作,比如编译Java源代码、打包JAR文件、运行测试、生成文档等,每一个Task都属于一个Project。

你可以将Gradle构建过程想象成一系列相互依赖的任务集合,这些任务按照特定的顺序和条件执行,共同完成构建流程。

在Gradle脚本(通常是build.gradle或settings.gradle.kts等文件)中,通过task关键字或者tasks.create()方法来定义一个Task。定义时可以为任务指定名称、组(group)、描述(description)以及闭包(closure)或动作(action),闭包内包含任务实际执行的操作逻辑。

// 定义一个简单的Task并设置其组和描述
task helloTask (group: 'example', description: 'Prints a hello message') {doLast {println 'Hello from Gradle Task!'}
}

在build.gradle中,一切无主的方法,都回去Project上查找。
如果你好奇task这个方法存在于哪里的话,点击task,会直接跳转到Project.class的源码去。

在这里插入图片描述
你会发现,所谓的这么一个task,定义的API,本质上就是Project的一个方法而已。

gradle中一个很重要的feature是,gradle中的task是活的,而不是死的。
task可以在配置阶段动态创建。

4. Lifecycle : Gradle的生命周期

4.1 任务图

Gradle 会在执行任何任务之前构建任务图。
在构建中的所有项目中,任务形成有向无环图 (DAG)。
pFY4HKO.png

4.2 构建阶段

Gradle 构建工具的生命周期可以细分为三个主要阶段:
在这里插入图片描述

  • 初始化 (Initialization)

    • 检测settings.gradle(.kts)文件是否存在
    • 根据settings.gradle(.kts)文件创建Settings对象 (Settings实例和settings .gradle(.kts)文件相对应)
    • 根据Settings对象确定哪些子项目将参与构建过程
    • 为每个项目创建对应的 Project 实例 (build.gradle(.kts)和Project相对应),并建立整个多项目构建的结构
  • 配置 (Configuration)

    • 进入配置阶段后,Gradle会根据每个Project加载其目录下对应的build.gradle(.kts)
    • Gradle 会加载每个项目中的 build.gradlebuild.gradle.kts 文件,根据其中的脚本定义来配置各个项目。
    • 在此阶段,Gradle 解析所有任务、依赖关系以及自定义插件等设置,并创建相应的Task对象。
    • 用户可以通过扩展点如pluginsdependenciestasks块来自定义构建行为。
  • 执行 (Execution)

    • Gradle 按照任务间的依赖关系来调度执行任务,确保前置任务成功完成后才会执行后续依赖于它的任务。
    • 执行阶段包括编译源代码、打包资源、运行测试、生成工件(如JAR、WAR文件)等操作。
    • 任务的执行可以并行进行。

Gradle 的强大之处在于它允许开发者在上述每个阶段插入定制的行为,例如通过添加钩子函数(如beforeSettingsprojectsEvaluated等)来扩展其功能。此外,在执行阶段,Gradle 使用增量构建技术来提高构建效率,仅处理自上次构建以来发生变化的部分。

在Gradle中,创建一个Settings实例是构建生命周期的第一步。Settings实例负责确定哪些项目应该包含在构建中,并为每个项目创建一个Project实例。这通常是通过解析settings.gradle或settings.gradle.kts文件来完成的,这些文件位于项目的根目录下。

5. Hook : Gradle中的钩子函数

Gradle中的Hook函数(也称为生命周期回调)允许你在构建生命周期的不同阶段插入自定义逻辑。这些Hook函数允许你扩展和定制Gradle的行为,以满足特定的构建需求。以下是一些Gradle中常用的Hook函数:

  • 构建初始阶段(Initialization
    • settingsEvaluated : 完成项目的配置阶段之后调用 (只能定义在 seting.gradleinit.gradle 脚本中)
    • projectsLoaded : 所有项目加载之后调用 (只能定义在 setting.gradleinit.gradle 脚本中)
  • 配置阶段(Configuration
    • beforeProject : 每个项目完成配置之前调用 (只能定义在 setting.gradleinit.gradle 脚本中)
    • afterProject : 每个项目完成配置之后调用
    • projectEvaluated : 所有项目全部完成配置之后调用
    • afterEvaluate : 整个配置阶段完成后调用
    • taskGraph.whenReady : 全部任务图已经构建完成可以就绪后调用
  • 执行阶段(Execution
    • taskGraph.beforeTask : 执行每一个任务之前调用
    • taskGraph.afterTask : 每一个任务执行完成之后调用
    • buildFinished : 整个构建全部结束后调用

6. Gradle系列文章

Android Gradle 开发与应用 (一) : Gradle基础-CSDN博客
Android Gradle开发与应用 (二) : Groovy基础语法-CSDN博客
Android Gradle开发与应用 (三) : Groovy语法概念与闭包-CSDN博客
Android Gradle开发与应用 (四) : Gradle构建与生命周期-CSDN博客
基于Gradle 8.2,创建Gradle插件-CSDN博客
Android Gradle插件开发_实现自动复制文件插件

http://www.yayakq.cn/news/848153/

相关文章:

  • 住房和城乡建设部网站招聘英文网站设计哪里好
  • 网站建设报价ppt模版微信小程序开发注册
  • 网站建设技术是干嘛的电商平台怎么搭建
  • 宿迁做网站公司微信公众号分享wordpress
  • 国外h5制作网站模板两个网站互相做外链
  • 网站建设文化报价制作京东一样的网站
  • 乌拉圭网站后缀怎么查二建注册在哪个公司
  • 嘉兴模板建站定制哈尔滨市建设工程信息网黑龙江
  • 西安网站建设APP开发百度云怎么找资源
  • 昆山网站开发ikelvwordpress 购买按钮
  • 苏州网站建设找哪家近五年关于网站建设的参考文献
  • 宁波外贸建站公司电子商务网站的建设课件
  • 响应式网站模板下载营销策划书范文1000字
  • 建设网站的一般步骤是深圳华强北营业时间
  • 国外ps素材网站如何建开发手机网站
  • 智慧政务网站怎么做枣庄有做网站的吗
  • 太原网络公司网站山西建设银行官方网站
  • 网站域名费用怎么做分录设计类专业网站
  • 网站建站六个目标游戏优化
  • 网站建设预算表格株洲定制网站建设
  • 一级A视网站 一级做爰片常州公司网站建设多少钱
  • 大连高端网站建设做网站推广有作用没
  • 重庆seo网络推广关键词常德网站建设网站优化
  • 静态网站做毕业设计网站建设价格差异多少
  • 推广做网站电话建自己的零售网站
  • 网站建设公司挣钱吗建设银行的官方网站积分商场
  • 熊掌号接合网站做seo个人网站有哪些站
  • 怎样建设网络游戏网站wordpress v2ex主题
  • 有口碑的盐城网站建设商城网站哪个公司做的好
  • 犀浦网站建设为什么wordpress不能升级