Gradle Project: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 22: Line 22:
}
}
</syntaxhighlight>
</syntaxhighlight>
More details are available in: {{Internal|Gradle Build Script Classpath|Build Script Classpath}}
See: {{Internal|Gradle Build Script Classpath|Build Script Classpath}}
<span id='Using_a_Plugin'></span>Plugins for the build can be declare with [https://docs.gradle.org/current/javadoc/org/gradle/api/plugins/PluginAware.html#apply-java.util.Map- PluginAware.apply(...)], which corresponds to the "apply" DSL element:
<span id='Using_a_Plugin'></span>Plugins for the build can be declare with [https://docs.gradle.org/current/javadoc/org/gradle/api/plugins/PluginAware.html#apply-java.util.Map- PluginAware.apply(...)], which corresponds to the "apply" DSL element:
<syntaxhighlight lang='groovy'>
<syntaxhighlight lang='groovy'>
apply plugin:|from: '...'
apply plugin:|from: '...'
</syntaxhighlight>
</syntaxhighlight>
More details on using plugins are available in: {{Internal|Gradle_Plugin_Concepts#Using_a_Plugin|Using a Plugin}}
See: {{Internal|Gradle_Plugin_Concepts#Using_a_Plugin|Using a Plugin}}


<span id='Project_Coordinates_1'></span>The project's coordinates and other state properties are available through a series of DSL variables: [[Gradle_Project_Coordinates_and_State_Properties#Name|name]], [[Gradle_Project_Coordinates_and_State_Properties#Group|group]], [[Gradle_Project_Coordinates_and_State_Properties#Version|version]], [[Gradle_Project_Coordinates_and_State_Properties#Description|description]], [[Gradle_Project_Coordinates_and_State_Properties#Path|path]], etc. Some of the coordinates, such as "group" and "version" can be also set in [[build.gradle]] with a variable assignment, while others, such as "name" cannot be changed.
<span id='Project_Coordinates_1'></span>The project's coordinates and other state properties are available through a series of DSL variables: [[Gradle_Project_Coordinates_and_State_Properties#Name|name]], [[Gradle_Project_Coordinates_and_State_Properties#Group|group]], [[Gradle_Project_Coordinates_and_State_Properties#Version|version]], [[Gradle_Project_Coordinates_and_State_Properties#Description|description]], [[Gradle_Project_Coordinates_and_State_Properties#Path|path]], etc. Some of the coordinates, such as "group" and "version" can be also set in [[build.gradle]] with a variable assignment, while others, such as "name" cannot be changed.
Line 35: Line 35:
description = "Example project"
description = "Example project"
logger.info "Project coordinates: ${group} ${name} ${version} ${description} ${path}"
logger.info "Project coordinates: ${group} ${name} ${version} ${description} ${path}"
</syntaxhighlight>More details available in: {{Internal|Gradle_Project_Coordinates_and_State_Properties#Overview|Gradle Project Coordinates and State Properties}}
</syntaxhighlight>See: {{Internal|Gradle_Project_Coordinates_and_State_Properties#Overview|Gradle Project Coordinates and State Properties}}
The project logger is also accessible in [[build.gradle]]. For more details see: {{Internal|Gradle_Logging|Gradle Logging}}
The project logger is also accessible in [[build.gradle]]. See: {{Internal|Gradle_Logging|Gradle Logging}}


<span id='Dependencies'></span>Dependencies and configurations can be managed with the "dependencies" and "configurations" DSL elements:
<span id='Dependencies'></span>Dependencies and configurations can be managed with the "dependencies" and "configurations" DSL elements:
Line 46: Line 46:
   // configuration closure
   // configuration closure
}
}
</syntaxhighlight>More details in: {{Internal|Gradle Dependencies and Configurations|Gradle Dependencies and Configurations}}
</syntaxhighlight>See: {{Internal|Gradle Dependencies and Configurations|Gradle Dependencies and Configurations}}
<span id='Gradle_File_Resolution'></span>The DSL exposes project-level methods for file resolution:
<span id='Gradle_File_Resolution'></span>The DSL exposes project-level methods for file resolution:
<syntaxhighlight lang='groovy'>
<syntaxhighlight lang='groovy'>
File f = file('./some/path/inside/project')
File f = file('./some/path/inside/project')
</syntaxhighlight>More details in: {{Internal|Gradle File Resolution|Gradle File Resolution}}
</syntaxhighlight>See: {{Internal|Gradle File Resolution|Gradle File Resolution}}


The project allows declaring new tasks in [[build.gradle]] and also defining completely new tasks in-line. For details on tasks, see: {{Internal|Gradle Task#Overview|Gradle Tasks}}
The project allows declaring new tasks in [[build.gradle]] and also defining completely new tasks in-line. See: {{Internal|Gradle Task#Overview|Gradle Tasks}}


=<span id='Project_Coordinates'></span>Project Coordinates and State Properties=
=<span id='Project_Coordinates'></span>Project Coordinates and State Properties=

Revision as of 19:21, 4 October 2020

External

Internal

Overview

A Gradle project typically represents a software component to be built by executing a set of tasks in sequence. A project has a direct class representation in the Gradle domain model: org.gradle.api.Project.

The project instance is available to the build.gradle script via the project variable, which corresponds to the Project.getProject() accessor. The project instance is not available in settings.gradle, only the root project descriptor via rootProject variable, which corresponds to Settings.getRootProject().

Project API and build.gradle DSL

The build script classpath for the project can be configured with Project.buildscript(Closure) which corresponds to the "buildscript" DSL element:

buildscript {
  // configuration closure
}

See:

Build Script Classpath

Plugins for the build can be declare with PluginAware.apply(...), which corresponds to the "apply" DSL element:

apply plugin:|from: '...'

See:

Using a Plugin

The project's coordinates and other state properties are available through a series of DSL variables: name, group, version, description, path, etc. Some of the coordinates, such as "group" and "version" can be also set in build.gradle with a variable assignment, while others, such as "name" cannot be changed.

group = "io.playground"
version = "0.1.0"
description = "Example project"
logger.info "Project coordinates: ${group} ${name} ${version} ${description} ${path}"

See:

Gradle Project Coordinates and State Properties

The project logger is also accessible in build.gradle. See:

Gradle Logging

Dependencies and configurations can be managed with the "dependencies" and "configurations" DSL elements:

dependencies {
  // configuration closure
}
configurations {
  // configuration closure
}

See:

Gradle Dependencies and Configurations

The DSL exposes project-level methods for file resolution:

File f = file('./some/path/inside/project')

See:

Gradle File Resolution

The project allows declaring new tasks in build.gradle and also defining completely new tasks in-line. See:

Gradle Tasks

Project Coordinates and State Properties

Gradle Project Coordinates and State Properties

Multi-Project Builds

Multi-Project Builds

TO DEPLETE

Gradle Project and Build Script