`

Gradle

 
阅读更多
Gradle Plugins
a. two types: script plugins (by apply from) and binary plugins (by apply plugin-id)
Script plugins are automatically resolved and can be applied from a script on the local filesystem or at a remote location.
binary plugins apply plugins by their plugin id, which is a globally unique identifier, or name, for plugins.
b. two steps: resolve & apply
Resolving a plugin means finding the correct version of the jar which contains a given plugin and adding it the script classpath.
Applying a plugin means actually executing the plugin's Plugin.apply(T) on the Project you want to enhance with the plugin.
c. non-core binary plugins need to be resolved before applied via below 4 ways.
Including the plugin from the plugin portal or a custom repository using the plugins DSL (see Section 27.5.2, “Applying plugins with the plugins DSL”).
Including the plugin from an external jar defined as a buildscript dependency (see the section called “Applying plugins with the buildscript block”).
Defining the plugin as a source file under the buildSrc directory in the project (see Section 43.4, “Build sources in the buildSrc project”).
Defining the plugin as an inline class declaration inside a build script.

Most plugins need to obtain some configuration from the build script. One method for doing this is to use extension objects. The Gradle Project has an associated ExtensionContainer object that helps keep track of all the settings and properties being passed to plugins.

Dependency Management:
1. Dependency configration
In Gradle dependencies are grouped into configurations(A configuration is simply a named set of dependencies). Configurations have a name, a number of other properties, and they can extend each other.Many Gradle plugins add pre-defined configurations to your project.
A project's configurations are managed by a configurations object.

configurations {
    compile {
        description = 'compile classpath'
        transitive = true
    }
    runtime {
        extendsFrom compile
    }
}

2. Dependency types
External module dependency
Client module dependency
Project dependency
File dependency
Gradle API dependency
Local Groovy dependency

Configuration file
settings.gradle file tells Gradle how the project and subprojects are structured.
The root build.gradle is often used to share common configuration between the child projects.

Three Build phases:
Initialization
Configuration
Execution

Properties:
1. System Properties
gradle xxx -DmySystemProp=xxx --> System.properties['someProperty']
2. Project Properties
gradle xxx -PmyProjectProp=xxx --> project.hasProperty('someProperty')
3. ext property

Gradle core objects: Project, Task, Plugin
Project lifecycle
One-one relationship for Project & build.gradle
Steps during build initialization:
1) Create a Settings instance for the build
2) Evaluate the "settings.gradle" script, if present, against the Settings object to configure it.
3) Use the configured Settings object to create the hierarchy of Project instances.
4) Evaluate each Project by executing its "build.gradle" file if present

Gradle features via Project API
project.tasks --> TaskContainer
project.taskGraph --> TaskExecutionGraph
project.configurations --> ConfigurationContainer
project.files --> FileCollection
project.repositories --> ArtifactRepositoryContainer
project.dependencies --> DependencyHandler
project.artifacts --> Artifacthandler
project.extentions --> ExtentionContainer
project.plugins --> PluginContainer

Plugin:
A Plugin represents an extension to Gradle, which applies some configuration to a target object (usually a project)
void apply (T target)
PluginAware: Something that can have plugins applied to it
Implementing Classes: Gradle, Project, Settings
void apply​(Closure closure)
void apply​(Map<String,​?> options)
void apply​(Action<? super ObjectConfigurationAction> action)
 from​(Object script)
    to​(Object... targets)
    plugin​(String pluginId)
    plugin​(Class<? extends Plugin> pluginClass)
PluginManager
PluginContainer
The id of a plugin is specified using a META-INF/gradle-plugins/${id}.properties classpath resource


分享到:
评论

相关推荐

    gradle-3.3-all.zip 绿色版本,欢迎下载

    Gradle 是一个强大的自动化构建工具,尤其在Java和Android开发领域广泛应用。Gradle-3.3是Gradle的第3.3版本,它提供了一系列改进和新特性,以提升开发效率和项目管理能力。这个"gradle-3.3-all.zip"绿色版本是为了...

    gradle-7.2-all,gradle-7.0.2-bin

    Gradle 是一个强大的构建自动化工具,广泛用于Java、Android和其他多语言项目。它采用Groovy和Kotlin作为构建脚本语言,提供了灵活的构建规则和依赖管理机制。标题中的"gradle-7.2-all"和"gradle-7.0.2-bin"指的是...

    gradle-8.7-bin

    1、gradle8.7 2、gradle-8.7-bin 3、gradle--8.7 4、什么是Gradle? Gradle是一个开源构建自动化工具,专为大型项目设计。它基于DSL(领域特定语言)编写,该语言是用Groovy编写的,使得构建脚本更加简洁和强大。...

    gradle-7.4-bin

    Gradle 是一个强大的构建自动化工具,广泛用于Java、Kotlin、Groovy等语言的项目管理。"gradle-7.4-bin" 指的是 Gradle 的 7.4 版本的二进制发行版。这个版本包含了运行Gradle所需的所有文件,包括可执行的JAR和其他...

    gradle合集 gradle-4.10-all.zip

    Gradle 是一个强大的构建自动化工具,广泛用于Java项目,但同时也支持其他编程语言如Groovy、Kotlin和Android开发。Gradle 的核心理念是通过基于领域特定语言(DSL)的构建脚本来提供灵活性和可扩展性,使得项目构建...

    gradle-6.0.1-all.zip和gradle-6.0.1-bin.zip

    Gradle是一款强大的构建自动化工具,尤其在Java和Android开发领域广泛应用。它采用了Groovy和Kotlin作为构建脚本语言,提供了灵活的构建配置和强大的插件系统,使得开发者能够高效地管理和构建项目。 标题提到的两...

    gradle合集-gradle-6.1.1.zip

    Gradle 是一个强大的构建自动化工具,广泛用于Java、Android和其他多语言项目。它采用Groovy和Kotlin作为其脚本语言,提供了灵活的构建配置和依赖管理机制。Gradle 6.1.1是该软件的一个特定版本,包含了对之前版本的...

    gradle-8.5-all

    《Gradle 8.5 全面解析》 Gradle,作为一款强大的自动化构建工具,以其灵活的构建脚本和高效的任务执行机制,在Java开发领域备受推崇。Gradle 8.5版本是这一系列中的一个重要里程碑,它在性能、稳定性和易用性上都...

    gradle合集 gradle-4.7-all.zip

    Gradle 是一个强大的构建自动化工具,广泛用于Java、Android和其他多语言项目。它采用Groovy或Kotlin作为构建脚本语言,提供了灵活的构建模型,支持模块化、依赖管理和插件系统,使得开发者能够高效地管理项目的构建...

    gradle合集之gradle5.5.zip

    Gradle 是一个强大的构建自动化工具,广泛用于Java、Android和其他JVM语言的项目。它采用领域特定语言(DSL)来管理构建过程,使得构建配置更加灵活且易于理解。标题中的"gradle合集之gradle5.5.zip"指的是包含了...

    gradle-6和8的版本

    《Gradle 6与8:在Cocos Creator 3.7和3.8中的应用与对比》 Gradle,作为一款强大的自动化构建工具,广泛应用于Android Studio项目中,它的版本迭代为开发者带来了许多新功能和优化。本篇将探讨Gradle 6.5.1与...

    gradle中的properties文件详解

    本文侧重于了解自定义properties文件,以及properties中的数据格式,在gradle中如何使用等知识点。 一、概述 在Android Studio 创建一个项目的时候,rootProject下面会生成gradle.properties和local.properties文件...

    gradle-6.7.1 安装包

    Gradle 是一个强大的构建自动化工具,广泛用于Java、Android和其他多语言项目。Gradle 6.7.1是Gradle项目在2020年11月16日发布的稳定版本,提供了许多新特性和改进,旨在提升构建性能、可靠性和开发者体验。在这个...

    gradle-7.6.4-all.zip 快速下载

    Gradle团队很兴奋地宣布Gradle 7.6.4。 此版本解决了安全漏洞: Apache Ant不安全临时文件漏洞 番石榴不安全临时目录 Ivy对XML外部实体引用的不当限制以及相关的Gradle问题#24795 它还修复了以下与多版本jar相关的...

    Android gradle 资源下载 gradle-6.7.1-all.zip gradle-4.10.1-all.zip

    这里提到的`gradle-6.7.1-all.zip`和`gradle-4.10.1-all.zip`是两个不同版本的Gradle发行包,它们包含了完整的Gradle运行环境和库,可以用于本地开发环境的配置。 首先,让我们详细了解一下Gradle。Gradle是一种...

    Gradle-8.7-all最新版安装压缩包

    1.1 什么是Gradle? Gradle是一个开源构建自动化工具,专为大型项目设计。它基于DSL(领域特定语言)编写,该语言是用Groovy编写的,使得构建脚本更加简洁和强大。Gradle不仅可以构建Java应用程序,还支持多种语言和...

    gradle-6.7.1-all

    Gradle 是一个强大的构建自动化工具,广泛用于Java、Android和其他多语言项目。Gradle-6.7.1-all是一个包含Gradle完整版本6.7.1的压缩包,它包括了运行和构建Gradle项目所需的所有组件和依赖。这个版本的发布主要是...

    gradle 官方文档 中文版

    Gradle是当前流行的项目构建自动化工具,它以Groovy语言为基础的领域特定语言(DSL)为核心,提供了一套声明式的构建元素,这些元素扩展性极佳,能够支持Java、Groovy、OSGi、Web以及Scala等多种项目构建。Gradle的...

    gradle-8.8-all.zip 快速下载

    Gradle是目前广泛使用的自动化构建工具,特别是在Java和Android开发领域。`gradle-8.8-all.zip` 是Gradle的8.8版本的压缩包,包含所有必要的组件,允许用户快速下载并安装该版本。这个版本带来了一些关键的更新和...

    gradle-8.0-bin.zip

    Gradle 是一个强大的自动化构建工具,广泛用于Java、Android和其他基于 JVM 的项目。"gradle-8.0-bin.zip" 文件是Gradle的二进制发行版,版本为8.0,通常包含了运行Gradle所需的可执行文件和库,但不包含源代码或...

Global site tag (gtag.js) - Google Analytics