Gradle is a
build automation tool for multi-language
software development
Software development is the process of designing and Implementation, implementing a software solution to Computer user satisfaction, satisfy a User (computing), user. The process is more encompassing than Computer programming, programming, wri ...
. It manages tasks like compilation, packaging, testing, deployment, and publishing. Supported languages include
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
(as well as
JDK-based languages
Kotlin,
Groovy
''Groovy'' (or, less commonly, ''groovie'' or ''groovey'') is a slang colloquialism popular during the 1960s and 1970s. It is roughly synonymous with words such as "excellent", "fashionable", or "amazing", depending on context.
History
The word ...
,
Scala),
C/
C++, and
JavaScript
JavaScript (), often abbreviated as JS, is a programming language and core technology of the World Wide Web, alongside HTML and CSS. Ninety-nine percent of websites use JavaScript on the client side for webpage behavior.
Web browsers have ...
.
Gradle builds on the concepts of
Apache Ant and
Apache Maven, and introduces a
Groovy
''Groovy'' (or, less commonly, ''groovie'' or ''groovey'') is a slang colloquialism popular during the 1960s and 1970s. It is roughly synonymous with words such as "excellent", "fashionable", or "amazing", depending on context.
History
The word ...
- and
Kotlin-based
domain-specific language contrasted with the
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
-based project configuration used by Maven. Gradle uses a
directed acyclic graph to provide dependency management. The graph is used to determine the order in which tasks should be executed. Gradle runs on the
Java Virtual Machine
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally descr ...
.
Gradle was designed for multi-project builds, which can grow to be large. It operates based on a series of build tasks that can run serially or in
parallel.
Incremental builds are supported by determining the parts of the build tree that are already up to date; any task dependent only on those parts does not need to be re-executed. It also supports
caching of build components, potentially across a shared network using the Gradle Build Cache. Combined with the proprietary hosted service of Develocity, it produces web-based build visualizations called ''Gradle Build Scans''. The software is extensible for new features and
programming languages with a
plugin subsystem.
Gradle is distributed as
Free Software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
under the
Apache License 2.0, and was first released in 2008.
History
Origin of the name
Founder and CEO Hans Dockter has said that he originally wanted to name the project "Cradle". However, to make the name unique and less "diminutive" he instead chose "Gradle", taking the "G" from the use of
Groovy
''Groovy'' (or, less commonly, ''groovie'' or ''groovey'') is a slang colloquialism popular during the 1960s and 1970s. It is roughly synonymous with words such as "excellent", "fashionable", or "amazing", depending on context.
History
The word ...
.
Major versions
Features
Gradle offers support for all phases of a build process including compilation, verification, dependency resolving, test execution, source code generation, packaging and publishing.
Because Gradle follows a
convention over configuration approach, it is possible to describe all of these build phases in short configuration files.
Conventions include the folder structure of the project, standard tasks and their order as well as dependency repositories. However, all conventions can be overridden by the project configuration if necessary.
Plugins are a central component of Gradle. They allow for integration of a set of configurations and tasks into a project and can be included from a central plugin repository or custom-developed for a single project.
Distribution
Gradle is available as a separate download, but can also be found bundled in products such as
Android Studio
Android Studio is the official integrated development environment (IDE) for Google's Android operating system, built on JetBrains' IntelliJ IDEA software and designed specifically for Android development. This is available for download on W ...
. Gradle Wrapper is the recommended way to invoke Gradle. It can download the declared version of Gradle beforehand if necessary.
See also
*
List of build automation software
References
Further reading
*
*
*
*
*
External links
* {{Official Website
Compiling tools
Java development tools
Build automation
Cross-platform software
Software using the Apache license
2007 software