Skip to content

Commit 3ec6509

Browse files
committed
Allow configuring a Maven Central mirror via system property
Add support for a `mavenCentralMirror` system property that allows users behind corporate proxies or firewalls to redirect all Maven Central traffic through a mirror repository. Users can configure this in `~/.gradle/gradle.properties`: systemProp.mavenCentralMirror=https://your-mirror.example.com When unset, behavior is identical to today (uses mavenCentral()). Co-authored-by: Isaac
1 parent 339b5dd commit 3ec6509

8 files changed

Lines changed: 56 additions & 6 deletions

File tree

build.gradle

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,12 @@ plugins {
2727

2828
allprojects {
2929
repositories {
30-
mavenCentral()
30+
def mavenCentralMirror = System.getProperty('mavenCentralMirror')
31+
if (mavenCentralMirror) {
32+
maven { url = mavenCentralMirror }
33+
} else {
34+
mavenCentral()
35+
}
3136
}
3237
}
3338

buildSrc/build.gradle

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,13 @@ plugins {
33
}
44

55
repositories {
6+
def mavenCentralMirror = System.getProperty('mavenCentralMirror')
7+
if (mavenCentralMirror) {
8+
maven { url = mavenCentralMirror }
9+
} else {
10+
mavenCentral()
11+
}
612
gradlePluginPortal()
7-
mavenCentral()
813
}
914

1015
dependencies {

gradle/scripts/lib/common-dependencies.gradle

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ import org.yaml.snakeyaml.Yaml
44

55
buildscript {
66
repositories {
7-
mavenCentral()
7+
def mavenCentralMirror = System.getProperty('mavenCentralMirror')
8+
if (mavenCentralMirror) {
9+
maven { url = mavenCentralMirror }
10+
} else {
11+
mavenCentral()
12+
}
813
gradlePluginPortal()
914
}
1015

@@ -36,7 +41,12 @@ configure(dependencyManagementProject) {
3641
google()
3742
// Since we manage plugin versions here too.
3843
gradlePluginPortal()
39-
mavenCentral()
44+
def mavenCentralMirror = System.getProperty('mavenCentralMirror')
45+
if (mavenCentralMirror) {
46+
maven { url = mavenCentralMirror }
47+
} else {
48+
mavenCentral()
49+
}
4050
}
4151

4252
javaPlatform {

gradle/scripts/lib/java-rpc-proto.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ import org.gradle.internal.os.OperatingSystem
22

33
buildscript {
44
repositories {
5+
def mavenCentralMirror = System.getProperty('mavenCentralMirror')
6+
if (mavenCentralMirror) {
7+
maven { url = mavenCentralMirror }
8+
}
59
gradlePluginPortal()
610
}
711
dependencies {

gradle/scripts/lib/java-shade.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ import java.util.concurrent.atomic.AtomicInteger
55

66
buildscript {
77
repositories {
8+
def mavenCentralMirror = System.getProperty('mavenCentralMirror')
9+
if (mavenCentralMirror) {
10+
maven { url = mavenCentralMirror }
11+
}
812
gradlePluginPortal()
913
google()
1014
}

gradle/scripts/version-catalog.gradle

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ import org.tomlj.TomlArray
44

55
buildscript {
66
repositories {
7-
mavenCentral()
7+
def mavenCentralMirror = System.getProperty('mavenCentralMirror')
8+
if (mavenCentralMirror) {
9+
maven { url = mavenCentralMirror }
10+
} else {
11+
mavenCentral()
12+
}
813
}
914

1015
dependencies {

settings.gradle

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
// Use -DmavenCentralMirror=<url> or systemProp.mavenCentralMirror=<url> in
2+
// ~/.gradle/gradle.properties to redirect all Maven Central requests to a mirror.
3+
pluginManagement {
4+
repositories {
5+
def mavenCentralMirror = System.getProperty('mavenCentralMirror')
6+
if (mavenCentralMirror) {
7+
maven { url = mavenCentralMirror }
8+
}
9+
gradlePluginPortal()
10+
}
11+
}
12+
113
plugins {
214
// This plugin should be applied in settings.gradle, not build.gradle.
315
// https://github.com/gradle/foojay-toolchains/issues/15

site-new/build.gradle

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,13 @@ import java.util.stream.Collectors
99

1010
buildscript {
1111
repositories {
12+
def mavenCentralMirror = System.getProperty('mavenCentralMirror')
13+
if (mavenCentralMirror) {
14+
maven { url = mavenCentralMirror }
15+
} else {
16+
mavenCentral()
17+
}
1218
gradlePluginPortal()
13-
mavenCentral()
1419
}
1520
dependencies {
1621
classpath libs.jsoup

0 commit comments

Comments
 (0)