1919package org.apache.beam.gradle
2020
2121import org.gradle.api.Project
22-
2322class Repositories {
2423
2524 static void register (Project project ) {
25+ def mirrorUrl = project. findProperty(" mavenCentralMirrorUrl" )
26+ boolean isCi = System . getenv(" GITHUB_ACTIONS" ) != null || System . getenv(" JENKINS_HOME" ) != null
27+ def useMirror = isCi && mirrorUrl
28+
29+ if (useMirror) {
30+ project. logger. lifecycle(" Running in CI. Mirroring Maven Central repositories via Google Maven Mirror." )
31+ }
2632
2733 project. repositories {
2834 maven { url project. offlineRepositoryRoot }
@@ -36,7 +42,11 @@ class Repositories {
3642 return
3743 }
3844
39- mavenCentral()
45+ if (! useMirror) {
46+ mavenCentral()
47+ } else {
48+ maven { url mirrorUrl }
49+ }
4050 mavenLocal()
4151
4252 // For Confluent Kafka dependencies
@@ -60,15 +70,19 @@ class Repositories {
6070 // Apply a plugin which provides the 'updateOfflineRepository' task that creates an offline
6171 // repository. This offline repository satisfies all Gradle build dependencies and Java
6272 // project dependencies. The offline repository is placed within $rootDir/offline-repo
63- // but can be overridden by specifying '-PofflineRepositoryRoot=/path/to/ repo'.
73+ // but can be overridden by specifying '-Pareas/offline- repo'.
6474 // Note that parallel build must be disabled when executing 'updateOfflineRepository'
6575 // by specifying '--no-parallel', see
6676 // https://github.com/mdietrichstein/gradle-offline-dependencies-plugin/issues/3
6777 project. apply plugin : " io.pry.gradle.offline_dependencies"
6878 project. offlineDependencies {
6979 repositories {
7080 mavenLocal()
71- mavenCentral()
81+ if (! useMirror) {
82+ mavenCentral()
83+ } else {
84+ maven { url mirrorUrl }
85+ }
7286 maven { url " https://plugins.gradle.org/m2/" }
7387 maven { url " https://repo.spring.io/plugins-release" }
7488 maven { url " https://packages.confluent.io/maven/" }
0 commit comments