官术网_书友最值得收藏!

Build life cycle

Gradle build has a life cycle, which consists of three phases: initialization, configuration, and execution. Understanding the build life cycle and the execution phases is crucial for Gradle developers. Gradle build is primarily a collection of tasks and a user can define the dependency between the tasks. So, even if two tasks depend on the same task, for example, Task C and Task B both depend on Task A, Gradle makes sure that Task A will execute only once throughout the execution of the build script.

Before executing any task, Gradle prepares a Directed Acyclic Graph (DAG) of all tasks for the build. It is directed because a task directly depends on another task. It is acyclic because, if Task A depends on Task B and if you make Task B depend on Task A, it will result in an error, as there can't be cyclic dependency between two tasks. Before executing the build script, Gradle configures the task dependency graph.

Let's quickly discuss the three build phases.

Initialization

User can create a build script for a single project as well as for a Multi-project build. During the initialization phase, Gradle determines which projects are going to take part in the build process, and creates a Project instance for each of these projects.

Configuration

This phase configures the project object. All the build scripts (in case the user is executing a multiproject build), which are part of the build process are executed without executing any task. This means whatever statements you have written outside of the task in the configuration block would be executed in the configuration phase. No tasks would be executed here; only the directed acyclic graph would be created for all tasks.

Execution

In this phase, Gradle executes all tasks as per the order given in the command line. However, if any dependencies exist between tasks, those relationships will be honored first before the command-line ordering.

主站蜘蛛池模板: 曲沃县| 江北区| 徐水县| 和林格尔县| 宁蒗| 洱源县| 灵山县| 连云港市| 白河县| 磐石市| 绥阳县| 宁都县| 遂昌县| 老河口市| 英山县| 清水河县| 井研县| 黄骅市| 湖口县| 江门市| 湾仔区| 汉沽区| 阜阳市| 天台县| 弋阳县| 富顺县| 三原县| 建平县| 台湾省| 广安市| 庆云县| 即墨市| SHOW| 綦江县| 桂林市| 汉源县| 龙游县| 益阳市| 安化县| 玛曲县| 长垣县|