Title: Theory / Important / CS / Programming / Build / Gradle
Tags: automatedNewLineAfterCommaSpace

Name: Gradle
Definition: a build automation tool for multi-language software development. It controls the development process in the tasks of compilation and packaging to testing, deployment, and publishing. collect statistical data about the usage of software libraries around the globe.
Page: https://gradle.org/
https://en.wikipedia.org/wiki/Gradle

Name: Gradlew
Definition: command line tool used to interact with gradle, downloading and installing it if necessary
Page: https://gradle.org/install/
Etymology: Gradle wrapper

Question: What is the recommended way to interact with gradle
Answer: gradlew for existing project
Page: https://docs.gradle.org/7.4/userguide/gradle_wrapper.html
Answer2: creating a gradlew file for new project, using gradle

Instruction: gradle wrapper
Page: https://docs.gradle.org/7.4/userguide/gradle_wrapper.html
Effect: generate a gradlew file
Name: Gradlew

Variable: gradle/wrapper/gradle-wrapper.properties
Meaning: Information about the gradle distribution
Page: https://docs.gradle.org/7.4/userguide/gradle_wrapper.html
Context: Gradle

Fla: --gradle-version
Effect: The Gradle version used for downloading and executing the Wrapper.
Page: https://docs.gradle.org/7.4/userguide/gradle_wrapper.html
Prefix: gradle(w) wrapper
Default: version of gradle

Fla: --distribution-type
Effect: The Gradle distribution type used for the Wrapper. bin or all
Page: https://docs.gradle.org/7.4/userguide/gradle_wrapper.html
Prefix: gradle wrapper
Default: bin

Fla: --gradle-distribution-url
Effect: The full URL pointing to Gradle distribution ZIP file.
Page: https://docs.gradle.org/7.4/userguide/gradle_wrapper.html
Prefix: gradle wrapper
Extra: Useful if you want to distribute your own version of gradle in company network

Fla: --gradle-distribution-sha256-sum
Effect: The SHA256 hash sum used for verifying the downloaded Gradle distribution.
Page: https://docs.gradle.org/7.4/userguide/gradle_wrapper.html
Prefix: gradle wrapper

Variable: gradle-wrapper.jar
Meaning: The Wrapper JAR file containing code for downloading the Gradle distribution.
Page: https://docs.gradle.org/7.4/userguide/gradle_wrapper.html
Context: gradle

Fla: Generate a new wrapper file
Effect: wrapper
Page: https://docs.gradle.org/7.4/userguide/gradle_wrapper.html
Prefix: ./gradlew

Name: A task
Definition: Actions: pieces of work that do something, like copy files or compile source
Page: https://docs.gradle.org/current/userguide/what_is_gradle.html#five_things
Context: Gradle
Definition2: inputs: values, files and directories that the actions use or operate on
Conjdef: all of
Definition3: Outputs: files and directories that the actions modify or generate

Instruction: tasks.named('task_name') {
  config
}
Page: https://docs.gradle.org/7.4/userguide/gradle_wrapper.html
Context: Gradle
Name: task_name
Initialization: a task with value config

Variable: systemProp.gradle.wrapperUser
Meaning: the username for http server to download update to graddle
Page: https://docs.gradle.org/7.4/userguide/gradle_wrapper.html
Context: Gradle

Variable: systemProp.gradle.wrapperPassword
Meaning: the password for http server to download update to graddle
Page: https://docs.gradle.org/7.4/userguide/gradle_wrapper.html
Context: Gradle

Fla: projects
Effect: list the projects in current gradle directory
Page: https://docs.gradle.org/current/userguide/getting_started.html
Prefix: gradle(w)
Context: Gradle

Fla: tasks
Effect: list the tasks in current gradle directory
Page: https://docs.gradle.org/current/userguide/getting_started.html
Prefix: gradle(w)
Context: Gradle

Fla: projectName:tasks
Page: https://docs.gradle.org/current/userguide/getting_started.html
Prefix: gradle(w)
Context: Gradle
Print: tasks that can be run for projectName

Fla: --help
Page: https://docs.gradle.org/current/userguide/getting_started.html
https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradle(w)
Flag abbreviation: -h -?
Context: Gradle
Print: help message

Fla: --task taskname
Page: https://docs.gradle.org/current/userguide/getting_started.html
Prefix: gradle(w) help
Context: Gradle
Print: help message for taskName

Fla: taskName
Effect: execute the tasks named taskName in all projects
Page: https://docs.gradle.org/current/userguide/getting_started.html
Prefix: gradle(w) help
Context: Gradle

Question: Assumption over tasks dependencies
Answer: A task never depend on itself, even indirectly
Page: https://docs.gradle.org/current/userguide/what_is_gradle.html#five_things
Context: Gradle

Question: The phase of gradle build scripts
Answer: Initialization
Sets up the environment for the build and determine which projects will take part in it.
Page: https://docs.gradle.org/current/userguide/what_is_gradle.html#five_things
Context: Gradle
Answer2: Configuration
Constructs and configures the task graph for the build and then determines which tasks need to run and in which order, based on the task the user wants to run.
Answer3: Execution
Runs the tasks selected at the end of the configuration phase.

Question: How to extend gradle
Answer: Custom task type
Page: https://docs.gradle.org/current/userguide/what_is_gradle.html#five_things
Context: Gradle
Answer2: custom task action
Answer3: extra properties on projects and tasks
Answer4: custom conventions
Answer5: a custom model

Question: Where should teh imperative logic be
Answer: in custom tasks type and plugins
Page: https://docs.gradle.org/current/userguide/what_is_gradle.html#five_things
Context: Gradle

Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Syntactic sugar: --option-name value
Implementation: --option-name=value
Context: Gradle

Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Syntactic sugar: --no-option-name
Implementation: --option-name=false
Context: Gradle

Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Syntactic sugar: --boolean-option-name (not followed by value)
Implementation: --boolean-option-name=true
Context: Gradle

Instruction: :taskName
Page: https://docs.gradle.org/current/userguide/what_is_gradle.html#five_things
Context: Gradle
Returns: rootProject:taskName

Fla: --exclude-task t
Effect: don't execute task t
Page: https://docs.gradle.org/current/userguide/what_is_gradle.html#five_things
Prefix: gradle
Flag abbreviation: -x t
Context: Gradle

Fla: --rerun-tasks
Effect: re-execute all tasks even when they  are up-to-date
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradle
Context: Gradle

Fla: --continue
Effect: keep running tasks even in case of failure of some of them
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradle taskName
Context: Gradle

Question: how do gradle abbreviation work
Answer: foo1Foo2...Foon matches any project/task whose name in n-part, separated by - or by caml case, where part i starts with fooi, only if non-ambiguous
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle

Fla: build
Effect: bulid all tasks and run all checks
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Context: Gradle

Fla: run
Effect: assemble the application and executes some script or binary
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Context: Gradle

Fla: check
Effect: run all verification tasks, test, linting
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Context: Gradle

Fla: clean
Effect: delete the content of the build directory
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Context: Gradle

Fla: dependencies
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Context: Gradle
Print: list of the dependencies of the selected project, broken down by configuration

Fla: buildEnvironment
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Context: Gradle
Print: visualises the buildscript dependencies of the selected project, similarly to how gradle dependencies visualizes the dependencies of the software being built.

Fla: dependencyInsight
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Context: Gradle
Print: gives you an insight into a particular dependency (or dependencies) that match specified input.

Fla: --configuration c
Effect: restrict to configuration c
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew dependencyInsight
Context: Gradle

Fla: --version
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: -v
Context: Gradle
Print: Gradle, Groovy, Ant, JVM, and operating system version information.

Fla: --full-stacktrace
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: -S
Context: Gradle
Print: Print out the full (very verbose) stacktrace for any exceptions

Fla: --stacktrace
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: -s
Context: Gradle
Print: Print out the stacktrace also for user exceptions (e.g. compile error).

Fla: --scan
Effect: Create a build scan with fine-grained information about all aspects of your Gradle build.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle

Fla: -Dorg.gradle.debug
Effect: Debug Gradle client (non-Daemon) process. Gradle will wait for you to attach a debugger at localhost:5005 by default.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle

Fla: -Dorg.gradle.debug.port=port number
Effect: Specifies the port number to listen on when debug is enabled.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle
Default: 5005

Fla: -Dorg.gradle.debug.server=true,false
Effect: If set to true and debugging is enabled, Gradle will run the build with the socket-attach mode of the debugger. Otherwise, the socket-listen mode is used.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle
Default: true

Fla: -Dorg.gradle.debug.suspend=true,false
Effect: When set to true and debugging is enabled, the JVM running Gradle will suspend until a debugger is attached.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle
Default: true

Fla: -Dorg.gradle.debug.debug
Effect: Debug Gradle Daemon process.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle

Fla: --build-cache
Effect: Toggles the Gradle build cache . Gradle will try to reuse outputs from previous builds.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle
Default: false

Fla: --configuration-cache
Effect: Toggles the Configuration Cache . Gradle will try to reuse the build configuration from previous builds.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle
Default: false

Fla: --configuration-cache-problems=(fail, warn)
Effect: Configures how the configuration cache handles problems
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle
Default: fail

Fla: --configuration-on-demand
Effect: Toggles Configure-on-demand. Only relevant projects are configured in this build run.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle
Default: false

Fla: --configurationmax-workers
Effect: maximum number of workers that Gradle may use
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle
Default: number of processors

Fla: --parallel
Effect: Build projects in parallel
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle
Default: off

Fla: --priority=(normal, low)
Effect: Specifies the scheduling priority for the Gradle daemon and all processes launched by it.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle
Default: normal

Fla: --profiles
Effect: Generates a high-level performance report in the $buildDir/reports/profile directory. --scan is preferred.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle

Fla: --scan
Effect: Generate a build scan with detailed performance diagnostics.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle

Fla: --watch-fs
Effect: Toggles watching the file system . When enabled Gradle re-uses information it collects about the file system between builds.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle
Default: true if it is supported on the OS

Fla: --daemon
Effect: Use the Gradle Daemon to run the build. Starts the daemon if not running or existing daemon busy
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle
Default: true

Fla: --foreground
Effect: Starts the Gradle Daemon in a foreground process.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle

Fla: --status
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle
Print: list running and recently stopped Gradle daemons. Only displays daemons of the same Gradle version.

Fla: --stop
Effect: stop all Gradle Daemons of the same version.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle

Fla: -Dorg.gradle.daemon.idletimeout=(number of milliseconds)
Effect: Gradle Daemon will stop itself after this number of milliseconds of idle time.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle
Default: 10800000 (3 hours).

Fla: -Dorg.gradle.logging.level=(quiet,warn,lifecycle,info,debug)
Effect: Set logging level via Gradle properties.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle

Fla: --quiet
Effect: Log errors only
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: -q
Context: Gradle

Fla: --warn
Effect: set log level to warn
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: -w
Context: Gradle

Fla: --info
Effect: set log level to info
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: -i
Context: Gradle

Fla: --debug
Effect: Log in debug mode
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: -d
Context: Gradle

Fla: --console=plain
Effect: generate plain text only. This option disables all color and other rich output in the console output. This is the default when Gradle is not attached to a terminal.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle

Fla: --console=auto
Effect: enable color and other rich output in the console output when the build process is attached to a console, or to generate plain text only when not attached to a console
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle

Fla: --console=rich
Effect: enable color and other rich output in the console output, regardless of whether the build process is not attached to a console. When not attached to a console, the build output will use ANSI control characters to generate the rich output.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle

Fla: --console=verbose
Effect: enable color and other rich output like the rich, but output task names and outcomes at the lifecycle log level, as is done by default in Gradle 3.5 and earlier.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle

Fla: --warning-mode=all
Effect: log all warnings
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle

Fla: --warning-mode=fail
Effect: log all warnings and fail the build if there are any warning
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle

Fla: --warning-mode=summary
Effect: suppress all warnings and log a summary at the end of the build.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle

Fla: --warning-mode=none
Effect: suppress all warnings, including the summary at the end of the build.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle

Fla: --include-build
Effect: Run the build as a composite, including the specified build. See Composite Builds .
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle

Fla: --offline
Effect: Specifies that the build should operate without accessing network resources
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Context: Gradle

Fla: --dry-run
Effect: Run Gradle with all task actions disabled. Use this to show which task would have executed.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Flag abbreviation: -m
Context: Gradle

Fla: --continuous
Effect: Enables continuous build. Gradle does not exit and will re-execute tasks when task file inputs change.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Flag abbreviation: -t
Context: Gradle

Fla: --write-locks
Effect: Indicates that all resolved configurations that are lockable should have their lock state persisted.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Flag abbreviation: -t
Context: Gradle

Fla: --update-locks <group_1:name_1>,...,<group_n:name_n>
Effect: Indicates that versions for the specified modules have to be updated in the lock file. This flag also implies --write-locks.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Flag abbreviation: -t
Context: Gradle

Fla: --no-rebuild
Effect: Do not rebuild project dependencies. Useful for debugging and fine-tuning buildSrc, but can lead to wrong results. Use with caution!
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Flag abbreviation: -a
Context: Gradle

Fla: --dependency-verification
Effect: Configures the dependency verification mode
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Flag abbreviation: -F
Context: Gradle
Default: strict

Fla: --write-verification-metadata
Effect: Generates checksums for dependencies used in the project (comma-separated list) for dependency verification.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Flag abbreviation: -M
Context: Gradle

Fla: --reresh-keys
Effect: Refresh the public keys used for dependency verification.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Context: Gradle

Fla: --export-keys
Effect: Exports the public keys used for dependency verification.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Context: Gradle

Fla: --gradle-user-home
Effect: Specifies the Gradle user home directory. The default is the .gradle directory in the user’s home directory.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Flag abbreviation: -g
Context: Gradle

Fla: --project-dir
Effect: Specifies the start directory for Gradle.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Flag abbreviation: -p
Context: Gradle
Default: current directory

Fla: --project-cache-dir
Effect: Specifies the project-specific cache directory.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Context: Gradle
Default: .gradle in the root project directory.

Fla: --system-prop
Effect: Sets a system property of the JVM
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Flag abbreviation: -D
Context: Gradle

Fla: --init-script
Effect: Specifies an initialization script.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Flag abbreviation: -I
Context: Gradle

Fla: --project-prop
Effect: Sets a project property of the root project,
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Flag abbreviation: -P
Context: Gradle

Fla: -Dorg.gradle.jvmargs
Effect: set JVM arguments
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Context: Gradle

Fla: -Dorg.gradle.java.home
Effect: Set JDK home dir.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Context: Gradle

Fla: init
Effect: create a new Gradle builds, with new or existing projects.
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew
Context: Gradle

Fla: --type type
Effect: ensure new task is of type
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew init
Context: Gradle

Fla: --continuous
Effect: automatically re-execute tasks when input change
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Prefix: gradlew taskName
Flag abbreviation: -t
Context: Gradle

Question: In which order gradle read configurations
Answer: command line flags
Page: https://docs.gradle.org/current/userguide/command_line_interface.html
Context: Gradle
Answer2: system properties
Answer3: gradle properties
Answer4: environment variable

Variable: settings.gradle
Meaning: file of configuration of a project
Page: https://docs.gradle.org/current/userguide/build_lifecycle.html
Context: Gradle

Extension: .gradle
Means: A gradle configuration file with groovy syntax
Other fields (not shown on cards):
Page: https://docs.gradle.org/current/userguide/build_lifecycle.html

Extension: .gradle.kts
Means: A gradle configuration file with kotlin syntax
Other fields (not shown on cards):
Page: https://docs.gradle.org/current/userguide/build_lifecycle.html

Instruction: allprojects {
  foo
}
Page: https://docs.gradle.org/current/userguide/build_lifecycle.html
Effect: run foo for each project

Instruction: afterEvaluate {
  foo
}
Page: https://docs.gradle.org/current/userguide/build_lifecycle.html
Effect: run foo on each project when they are evaluated

Instruction: println(foo)
Page: https://docs.gradle.org/current/userguide/build_lifecycle.html
Effect: print foo and add a new line
Language: gradle

Typ: ProjectEvaluationListener
Function: afterEvaluate(project, projectState)This method is called when a project has been evaluated, and before the evaluated project is made available to other projects.
Page: https://docs.gradle.org/current/userguide/build_lifecycle.html
Function2: beforeEvaluate​(Project project)
This method is called immediately before a project is evaluated.

Variable: $USER_HOME/.gradle
Meaning: global configuration properties and initialization scripts as well as caches and log files.
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Context: gradle

Variable: $USER_HOME/.gradle/caches
Meaning: Global cache directory (for everything that’s not project-specific)
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Context: Gradle

Variable: $USER_HOME/.gradle/caches/version_number
Meaning: version-specific cache directory (for everything that’s not project-specific)
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Context: Gradle

Variable: $USER_HOME/.gradle/caches/named
Meaning: Shared caches (e.g. for artifacts of dependencies)
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Context: Gradle

Variable: $USER_HOME/.gradle/daemon
Meaning: Registry and logs of the Gradle Daemon
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Context: Gradle

Variable: $USER_HOME/.gradle/init.d
Meaning: Global initialization scripts
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Context: Gradle

Variable: $USER_HOME/.gradle/jdks
Meaning: JDKs downloaded by the toolchain support
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Context: Gradle

Variable: $USER_HOME/.gradle/wrapper/dists
Meaning: Distributions downloaded by the Gradle Wrapper
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Context: Gradle

Variable: $USER_HOME/.gradle/gradle.properties
Meaning: Global Gradle configuration properties
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Context: Gradle

Variable: $PROJECT_ROOT/.gradle
Meaning: Project-specific cache directory generated by Gradle
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Context: Gradle

Variable: $PROJECT_ROOT/.gradle/version
Meaning: Version-specific caches (e.g. to support incremental builds)
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Context: Gradle

Variable: $PROJECT_ROOT/build
Meaning: The build directory of this project into which Gradle generates all build artifacts.
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Context: Gradle

Variable: $PROJECT_ROOT/gradle/wrapper
Meaning: Contains the JAR file and configuration of the Gradle Wrapper
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Context: Gradle

Variable: $PROJECT_ROOT/gradle.properties
Meaning: Project-specific Gradle configuration properties
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Context: Gradle

Variable: $PROJECT_ROOT/gradlew
Meaning: Scripts for executing builds using the Gradle Wrapper
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Context: Gradle

Variable: $PROJECT_ROOT/settings.gradle(.kts)
Meaning: The project’s settings file where the list of subprojects is defined
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Context: Gradle

Variable: $PROJECT_ROOT/subproject_folder
Meaning: A folder containing a subproject
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Context: Gradle

Variable: $PROJECT_ROOT/subproject_folder/build.gradle(.kts)
Meaning: Each subproject has its own Gradle build script
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Context: Gradle

Instruction: dependsOn(foo)
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Effect: Before executing this task, build task foo
Language: Gradle
Context: task

Instruction: tasks.register("name") {
  args
}
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Meaning: A new task in this build file
Language: Gradle
Context: task
Identifier: name

Instruction: tasks.named("name") {
  block
}
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Effect: execute block on task named name
Language: Gradle
Context: task

Instruction: dealing with ant: todo
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Language: Gradle
Context: task

Instruction: defaultTasks(
  task1,
  ....,
  taskN
)
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Effect: set task1, ..., and taskN as default tasks
Language: Gradle
Context: build.gradle.kts

Instruction: buildscript {
}
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Effect: todo
Language: Gradle
Context: build.gradle.kts

Instruction: repositories {
}
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Effect: todo
Language: Gradle
Context: build.gradle.kts's buildscript

Instruction: dependencies {
  foo
}
Page: https://docs.gradle.org/current/userguide/directory_layout.html
Effect: use plug-in foo as dependencies, accessible in all tasks
todo
Language: Gradle
Context: build.gradle.kts's buildscript

Variable: project
Meaning: the project itself
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Language: Gradle
Typ: Project
Variables: Project p

Variable: name
Meaning: the name of the project directory
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Language: Gradle
Typ: String
Variables: Project p

Variable: path
Meaning: the absolute path of the project
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Language: Gradle
Typ: String
Variables: Project p

Variable: description
Meaning: a description for the project
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Language: Gradle
Typ: String
Variables: Project p

Variable: projectDir
Meaning: a description for the projectThe directory containing the build script
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Language: Gradle
Typ: File
Variables: Project p

Variable: buildDir
Meaning: projectDir/build
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Language: Gradle
Typ: File
Variables: Project p

Variable: group
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Language: Gradle
Typ: Object
Variables: Project p

Variable: version
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Language: Gradle
Typ: Object
Variables: Project p

Variable: versionant
Meaning: An antbuilder instance
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Language: Gradle
Typ: AntBuilder
Variables: Project p

Typ: KotlinBuildScript
Meaning: type in which .gradle.kts build scripts are compiled
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Language: Gradle
Chapter: versionant
Variables: Project p

Typ: KotlinSettingsScript
Meaning: todo
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Language: Gradle
Chapter: versionant
Variables: Project p

Typ: KotlinInitScript
Meaning: todo
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Language: Gradle
Chapter: versionant
Variables: Project p

Variable: extra
Meaning: a dictionnary with arbitrary value but by the build file compiler
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Language: Gradle

Variable: groovy part
Meaning: todo
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Language: Gradle

Name: Plugin
Definition: tasks
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Chapter: Gradle
Definition2: domain object
Conjdef: All of
Definition3: convention

Typ: Plugin
Function: apply(T target) Apply this plugin to the given target object.
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html https://docs.gradle.org/current/javadoc/org/gradle/api/Plugin.html
Context: Gradle

Name: A binary plugin
Definition: A plugin which implements the Plugin interface
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html https://docs.gradle.org/current/javadoc/org/gradle/api/Plugin.html
Context: Gradle
Typ: Plugin

Name: A script plugin
Definition: A plugin created using one of Gradle's DSL language
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html https://docs.gradle.org/current/javadoc/org/gradle/api/Plugin.html
Context: Gradle

Name: Resolving a plugin
Definition: finding the correct version of the jar which contains a given plugin and adding it to the script classpath
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html https://docs.gradle.org/current/javadoc/org/gradle/api/Plugin.html
Context: Gradle

Name: Applying a plugin
Definition: actually executing the plugin’s Plugin.apply(T) on the Project you want to enhance with the plugin
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html https://docs.gradle.org/current/javadoc/org/gradle/api/Plugin.html
Context: Gradle

Name: gradle plugin portal
Definition: http://plugins.gradle.org/ a webpage allowing to find core and community plugins
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Context: Gradle

Instruction: plugins {
  foo1
  ...
  foo_n
}
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Effect: uses plug-ins foo_1, ..., and foo_n
Language: Gradle
Name: gradle plugin portal

Instruction: id("fully_qualified_name") version "v"
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Language: Gradle
Context: plugins
Returns: the plugin from plugin portal named fully_qualified_name in version v
Name: gradle plugin portal

Instruction: `plugin_id`
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Language: Gradle
Context: plugins
Returns: the core plugin named plugin_id
Name: gradle plugin portal

Instruction: GradlePlugin {
  foo
}
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Effect: declare plugins foo as usable in this build file
Language: Gradle
Name: gradle plugin portal

Instruction: create("plugin name") {
  id = "plugin_id"
  implementationClass = "class"
}
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Meaning: Create a binary plugin, using class `class` implementing Plugin, with `plugin_id`
Language: Gradle
Context: GradlePlugin { plugins { ... }}

Instruction: repositories {
  repo_1
  ...
  repo_n
}
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Effect: plugins are searched first in repository repo_1 then ..., then repo_n
Language: Gradle
Context: pluginManagement { }

Instruction: gradlePluginPortal()
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Language: Gradle
Context: pluginManagement { repositories { ... } }
Returns: the gradle plugin portal

Instruction: maven(url= "path")
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Language: Gradle
Context: pluginManagement { repositories { ... } }
Returns: repositorie for maven plugins at path

Instruction: ivy(url= "path")
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Language: Gradle
Context: pluginManagement { repositories { ... } }
Returns: repository for ivy plugins at path

Instruction: apply<C>()
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Effect: apply plugin C
Language: Gradle
Variables: C implements Plugin

Instruction: apply(plugin = "plugin_id")
Page: https://docs.gradle.org/current/userguide/writing_build_scripts.html
Effect: apply plug-in with plugin_id
Language: Gradle