I have something like this in my top level build.gradle
(Gradle 2.2)
ext.repo = "https://my-artifactory-repo"
buildscript {
repositories {
maven {
credentials {
username foo
password bar
}
url repo //doesn't work
}
}
dependencies {
classpath 'com.android.tools.build:gradle:0.14.1'
}
}
allprojects {
repositories {
maven {
credentials {
username foo
password bar
}
url repo //works
}
}
}
This is the error
Could not find property 'repo' on org.gradle.api.internal.artifacts.repositories.DefaultMavenArtifactRepository_Decorated@718afa64.
So it works in allprojects
but not buildscript
.
This is happening because the
buildscript {...}
configuration closure is always evaluated first, so the property is not yet defined. A workaround would be to define the property outside of the build script, either by placing it in agradle.properties
file or via the command line.You can define your variable as an extra property with
ext
in thebuildscript {...}
. This variable is then also accessible in the scope ofallprojects {...}
: