106

I am following the Artifactory 1-min Setup. I have Artifactory up and running on my localhost, and now I am trying to integrate it with Intellij/Gradle.

The artifactory webapp gives a gradle.properties and build.gradle file, so I'm trying to start with adding these to my IntelliJ project. However, I don't know where to put the gradle.properties file.

I tried copying thegradle.properties contents (key=value pairs) to gradle/wrapper/gradle-wrapper.properties, unfortunately doing that does not make the keys accessible in the build.gradle file. Any ideas?

ericbn
  • 10,163
  • 3
  • 47
  • 55
bcorso
  • 45,608
  • 10
  • 63
  • 75

2 Answers2

186

Gradle looks for gradle.properties files in these places:

  • in project build dir (that is where your build script is)
  • in sub-project dir
  • in gradle user home (defined by the GRADLE_USER_HOME environment variable, which if not set defaults to USER_HOME/.gradle)

Properties from one file will override the properties from the previous ones (so file in gradle user home has precedence over the others, and file in sub-project has precedence over the one in project root).

Reference: https://gradle.org/docs/current/userguide/build_environment.html

mernst
  • 7,437
  • 30
  • 45
ericbn
  • 10,163
  • 3
  • 47
  • 55
  • 1
    Awesome, thanks! I added the gradle.properties file to the project dir and now it the keys are resolved in the build.gradle file. – bcorso May 19 '15 at 18:59
  • But we can we use both properties of both `gradle.properties` file that is under `GRADLE_USER_HOME` as well as the one that is in root project directory right? – Bitwise DEVS Jun 25 '21 at 14:52
  • @BitwiseDEVS No, not the file, but the key/value will be overrided. – BollMose Sep 27 '21 at 13:34
  • I'm not a fan of blind references like these. Though convention over configuration has its advantages. – Sridhar Sarnobat Mar 07 '22 at 23:14
63

Actually there are 3 places where gradle.properties can be placed:

  1. Under gradle user home directory defined by the GRADLE_USER_HOME environment variable, which if not set defaults to USER_HOME/.gradle
  2. The sub-project directory (myProject2 in your case)
  3. The root project directory (under myProject)

Gradle looks for gradle.properties in all these places while giving precedence to properties definition based on the order above. So for example, for a property defined in gradle user home directory (#1) and the sub-project (#2) its value will be taken from gradle user home directory (#1).

You can find more details about it in gradle documentation here.

Amnon Shochot
  • 8,998
  • 4
  • 24
  • 30