IntelliJ Gradle Support
External
- https://www.jetbrains.com/help/idea/gradle.html
- https://www.jetbrains.com/help/idea/gradle-settings.html
Internal
Overview
Gradle is supported by IntelliJ via two plugins, which are installed and enabled by default: "Gradle" and "Gradle Extension". Gradle integration allows creating a Gradle project from the IDE, or opening an existing Gradle project with the IDE and managing it.
Concepts
Gradle JVM
IDE determines the Gradle JVM according to the following algorithm, evaluating in order:
- When the project is opened, check
gradle.properties
in the root of the project fororg.gradle.java.home
system property and use the value if found. - Use the value specified in Gradle Settings → Gradle JVM. By default, that value is Project SDK.
Language Level
The language level settings are applied for a source root or for a module. For a module, the module language level is set to sourceCompatibility
in the build.gradle file. If a IDE Gradle project has a single linked Gradle project then the project default language level is set to the minimum language level among the module language levels. The preview part is set to the conjunction of preview flags of the module source sets. The source set module language level is set to the corresponding combination of sourceCompatibility
property and --enable-preview
flag.
Gradle Settings
Gradle user home
Gradle JVM
See Gradle JVM above.
Operations
Create a New Gradle Project from the IDE
Open an Existing Gradle Project
Gradle Home
If asked to specify Gradle home, and get "Gradle location is incorrect", use the "libexec" subdirectory (/usr/local/Cellar/gradle/4.9/libexec).
IDEA Gradle Plugin
Configuring Gradle Sources
TODO: Gradle Operations | IDE Configuration
Importing a Project form a Gradle Model
Use auto-import - If selected, re-import of the project is done automatically every time you make changes to the project.
Group modules. See Grouping Modules.
SNAPSHOT Refresh Problem
There are cases when Gradle pulls the latest version of the SNAPSHOT and caches it in its dependency cache, but IntelliJ IDEA Gradle plugin does not seem to notice it and uses an old version of the snapshot. This is troublesome during debugging, when the source code as displayed by IntelliJ does not match the bytecode being debugged.
Possible solutions for this (have not tested any of them, do that next time when I need it):
1. Refresh Dependencies of the Gradle Module
Gradle tab -> Select the module -> Right click -> Refresh Dependencies
2. Remove the Problem Dependency
Project Tab -> External Libraries -> expand Gradle: library-name -> Select "library root" -> Delete.
Then go to the Gradle tab and refresh dependencies.