Gradle Operations TODEPLETE: Difference between revisions
Line 52: | Line 52: | ||
===Gradle Project Initialization Script=== | ===Gradle Project Initialization Script=== | ||
This is a script that is a little bit more complex than gradle init. It | This is a script that is a little bit more complex than gradle init. The script creates the project root directory, interactively queries project elements, such as the initial package name, etc. It then will will create the initial package and a simple Main class, will initialize build.gradle with the minimal configuration required to build a Java project and it will put in place the run wrapper. | ||
{{External|https://github.com/NovaOrdis/playground/blob/master/project-template-gradle/gradle-init}} | {{External|https://github.com/NovaOrdis/playground/blob/master/project-template-gradle/gradle-init}} |
Revision as of 07:30, 1 June 2018
Internal
Overview
Command Line
Some command line options have the same effect as setting corresponding properties or environment variables. When a command line option is present, it has precedence over the equivalent properties or environment variables. More details in Gradle Variables and Properties.
gradle --help
-q, --quiet
Quiet.
-m, --dry-run
Executes a dry run.
-D, --system-prop
--build-cache
Runtime Configuration
Various aspects of the runtime configuration are controlled with Gradle properties:
- org.gradle.console: console output coloring and verbosity.
- org.gradle.debug: starts the JVM in debug mode, listening on port 5005. This is equivalent with adding the following on the JVM command line:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005
- org.gradle.java.home, org.gradle.jvmargs specify the Java home and JVM arguments for the Gradle build process. Also see https://docs.gradle.org/current/userguide/build_environment.html#sec:configuring_jvm_memory
- org.gradle.logging.level https://docs.gradle.org/current/userguide/logging.html#sec:choosing_a_log_level
- org.gradle.warning.mode
- org.gradle.parallel, org.gradle.workers.max parallel mode configuration.
Operations
Start a Project
gradle init
Creates a project structure that includes:
- build.gradle
- settings.gradle
- a project-level gradle directory
- a project-level .gradle directory
- gradlew, gradlew.bat
Gradle Project Initialization Script
This is a script that is a little bit more complex than gradle init. The script creates the project root directory, interactively queries project elements, such as the initial package name, etc. It then will will create the initial package and a simple Main class, will initialize build.gradle with the minimal configuration required to build a Java project and it will put in place the run wrapper.
List Sub-Projects
gradle projects
Inspect Dependencies
The full graph of the project's dependencies can be rendered. The selection reason and origin for a dependency can also be displayed.
To display the dependency trees for all dependency configurations of the project, execute:
gradle -q dependencies
The result is called a dependency report. Any dependency that could not be resolved is marked with FAILED in red color. Dependencies with the same coordinates that can occur multiple times in the graph are omitted and indicated by an asterisk. Dependencies that had to undergo conflict resolution render the requested and selected version separated by a right arrow character. The dependency report provides the raw list of dependencies but does not explain why they have been selected or which dependency is responsible for pulling them into the graph. These explanations can though be generated, see Identify Why a Specific Dependency was Selected.
To display the dependency tree for just one dependency configuration:
gradle -q dependencies --configuration <configuration-name>
Identify Why a Specific Dependency was Selected
gradle -q dependencyInsight --dependency <dependency-name> [--configuration <configuration-name>]
Print the Runtime Classpath
task printClasspath {
doLast {
configurations.runtimeClasspath.each { print it; print ':' }
}
}
Then Gradle must be run with "-q" option to discard extraneous output:
gradle -q printClasspath
Artifact Publishing Operations
Command-Line Interface
Tasks
build
Build without tests. Works with simple projects or multi-project builds.
gradle build -x test gradle build -x :some-project:test
Build a sub-project:
gradle :<sub-project-name>:build
projects
gradle projects
tasks
properties
Displays project properties, properties added by various plugins and their default values.
gradle properties