You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ds...@apache.org on 2026/08/01 16:45:55 UTC
(solr) branch main updated: build: centralize maven repo declarations (#4677)
This is an automated email from the ASF dual-hosted git repository.
dsmiley pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/solr.git
The following commit(s) were added to refs/heads/main by this push:
new 54758e81b40 build: centralize maven repo declarations (#4677)
54758e81b40 is described below
commit 54758e81b4012796c03bca0b14d403e1d10204ca
Author: David Smiley <ds...@apache.org>
AuthorDate: Sat Aug 1 12:45:50 2026 -0400
build: centralize maven repo declarations (#4677)
---
build-tools/build-infra/build.gradle | 4 +--
.../build-infra/declare-repositories.gradle | 42 ++++++++++++++++++++++
build-tools/build-infra/settings.gradle | 4 +++
build-tools/missing-doclet/build.gradle | 4 +--
build-tools/missing-doclet/settings.gradle | 4 +++
.../PR#4677-buildCentralizeRepoDeclaration.yml | 8 +++++
gradle/documentation/markdown.gradle | 26 +++++++-------
gradle/globals.gradle | 13 +------
gradle/testing/randomization.gradle | 6 ++--
gradle/validation/git-status.gradle | 15 ++++----
gradle/validation/jar-checks.gradle | 4 +--
gradle/validation/rat-sources.gradle | 4 +--
settings.gradle | 5 +--
solr/docker/build.gradle | 8 ++---
solr/ui/build.gradle.kts | 3 +-
15 files changed, 90 insertions(+), 60 deletions(-)
diff --git a/build-tools/build-infra/build.gradle b/build-tools/build-infra/build.gradle
index 9b5ff387488..bd1a4c04216 100644
--- a/build-tools/build-infra/build.gradle
+++ b/build-tools/build-infra/build.gradle
@@ -20,9 +20,7 @@ plugins {
alias(libs.plugins.diffplug.spotless) apply false
}
-repositories {
- mavenCentral()
-}
+apply from: file("declare-repositories.gradle")
group = "org.apache"
diff --git a/build-tools/build-infra/declare-repositories.gradle b/build-tools/build-infra/declare-repositories.gradle
new file mode 100644
index 00000000000..111ff365b09
--- /dev/null
+++ b/build-tools/build-infra/declare-repositories.gradle
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// Central repository declarations for every consumption scope: plugin resolution
+// (pluginManagement), project dependencies, buildscript classpath, and the
+// build-infra / missing-doclet included builds. Applied via
+// `apply from: <this>, to: <handler>` onto whichever object owns the repositories.
+//
+// Your enterprise mirror: set the `solr.maven.repo.url` system property (via
+// -Dsolr.maven.repo.url=..., or systemProp.solr.maven.repo.url=... in gradle.properties) or
+// the equivalent SOLR_MAVEN_REPO_URL environment variable to route every scope through a
+// single internal mirror (e.g. Artifactory/Nexus) instead of public repositories. System
+// properties and environment variables are inherited by the included builds, so one setting
+// covers the entire build.
+
+def mirrorUrl = System.getProperty('solr.maven.repo.url') ?: System.getenv('SOLR_MAVEN_REPO_URL')
+
+repositories {
+ if (mirrorUrl) {
+ maven {
+ // name = 'yourEnterpriseMirror'
+ url = mirrorUrl
+ }
+ } else {
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
diff --git a/build-tools/build-infra/settings.gradle b/build-tools/build-infra/settings.gradle
index c03775cb0b9..4e51e03a47a 100644
--- a/build-tools/build-infra/settings.gradle
+++ b/build-tools/build-infra/settings.gradle
@@ -15,6 +15,10 @@
* limitations under the License.
*/
+pluginManagement {
+ apply from: file("declare-repositories.gradle"), to: delegate
+}
+
rootProject.name = 'build-infra'
// Use project's version catalog for centralized dependency management
diff --git a/build-tools/missing-doclet/build.gradle b/build-tools/missing-doclet/build.gradle
index 11a7fc6e2a8..e973631ba2b 100644
--- a/build-tools/missing-doclet/build.gradle
+++ b/build-tools/missing-doclet/build.gradle
@@ -20,9 +20,7 @@ plugins {
alias(libs.plugins.diffplug.spotless) apply false
}
-repositories {
- mavenCentral()
-}
+apply from: file("../build-infra/declare-repositories.gradle")
group = "org.apache.solr.tools"
description = 'Doclet-based javadoc validation'
diff --git a/build-tools/missing-doclet/settings.gradle b/build-tools/missing-doclet/settings.gradle
index c8abe2fa87f..e32c65d3722 100644
--- a/build-tools/missing-doclet/settings.gradle
+++ b/build-tools/missing-doclet/settings.gradle
@@ -15,6 +15,10 @@
* limitations under the License.
*/
+pluginManagement {
+ apply from: file("../build-infra/declare-repositories.gradle"), to: delegate
+}
+
rootProject.name = "missing-doclet"
// Use project's version catalog for centralized dependency management
diff --git a/changelog/unreleased/PR#4677-buildCentralizeRepoDeclaration.yml b/changelog/unreleased/PR#4677-buildCentralizeRepoDeclaration.yml
new file mode 100644
index 00000000000..b40fb37d0f7
--- /dev/null
+++ b/changelog/unreleased/PR#4677-buildCentralizeRepoDeclaration.yml
@@ -0,0 +1,8 @@
+title: >
+ Centralize Maven repository declarations for the build. Can customize with SOLR_MAVEN_REPO_URL.
+type: other
+authors:
+ - name: David Smiley
+links:
+ - name: PR#4677
+ url: https://github.com/apache/solr/pull/4677
diff --git a/gradle/documentation/markdown.gradle b/gradle/documentation/markdown.gradle
index eb9458bdb9c..ee3926a2cdf 100644
--- a/gradle/documentation/markdown.gradle
+++ b/gradle/documentation/markdown.gradle
@@ -15,22 +15,20 @@
* limitations under the License.
*/
-import com.vladsch.flexmark.ast.Heading;
-import com.vladsch.flexmark.ext.abbreviation.AbbreviationExtension;
-import com.vladsch.flexmark.ext.attributes.AttributesExtension;
-import com.vladsch.flexmark.ext.autolink.AutolinkExtension;
-import com.vladsch.flexmark.html.HtmlRenderer;
-import com.vladsch.flexmark.parser.Parser;
-import com.vladsch.flexmark.parser.ParserEmulationProfile;
-import com.vladsch.flexmark.util.ast.Document;
-import com.vladsch.flexmark.util.data.MutableDataSet;
-import com.vladsch.flexmark.util.sequence.Escaping;
-import groovy.text.SimpleTemplateEngine;
+import com.vladsch.flexmark.ast.Heading
+import com.vladsch.flexmark.ext.abbreviation.AbbreviationExtension
+import com.vladsch.flexmark.ext.attributes.AttributesExtension
+import com.vladsch.flexmark.ext.autolink.AutolinkExtension
+import com.vladsch.flexmark.html.HtmlRenderer
+import com.vladsch.flexmark.parser.Parser
+import com.vladsch.flexmark.parser.ParserEmulationProfile
+import com.vladsch.flexmark.util.ast.Document
+import com.vladsch.flexmark.util.data.MutableDataSet
+import com.vladsch.flexmark.util.sequence.Escaping
+import groovy.text.SimpleTemplateEngine
buildscript {
- repositories {
- mavenCentral()
- }
+ apply from: rootProject.file('build-tools/build-infra/declare-repositories.gradle'), to: delegate
dependencies {
classpath libs.flexmark.flexmark
diff --git a/gradle/globals.gradle b/gradle/globals.gradle
index 38bf41e9a6b..a9e9efe57d3 100644
--- a/gradle/globals.gradle
+++ b/gradle/globals.gradle
@@ -16,7 +16,6 @@
*/
import javax.inject.Inject
-import org.gradle.process.ExecOperations
interface ExecOperationsHolder {
@Inject
@@ -28,18 +27,8 @@ allprojects {
group "org.apache"
- // def lucenePrereleaseBuild = '9'
-
// Repositories to fetch dependencies from.
- repositories {
- mavenCentral()
- /* Reenable this if we need it again in future
- maven {
- name "LucenePrerelease${lucenePrereleaseBuild}"
- url "https://nightlies.apache.org/solr/lucene-prereleases/${lucenePrereleaseBuild}/"
- }
- */
- }
+ apply from: rootProject.file('build-tools/build-infra/declare-repositories.gradle'), to: delegate
// Artifacts will have names after full gradle project path
// so :solr:core will have solr-core.jar, etc.
diff --git a/gradle/testing/randomization.gradle b/gradle/testing/randomization.gradle
index 98787442cc2..d51eac1f9c5 100644
--- a/gradle/testing/randomization.gradle
+++ b/gradle/testing/randomization.gradle
@@ -19,15 +19,13 @@
// Configure test randomization seeds and derived test properties.
//
-import java.nio.file.*
import com.carrotsearch.randomizedtesting.SeedUtils
import com.carrotsearch.randomizedtesting.generators.RandomPicks
+import java.nio.file.Path
import org.apache.tools.ant.types.Commandline
buildscript {
- repositories {
- mavenCentral()
- }
+ apply from: rootProject.file('build-tools/build-infra/declare-repositories.gradle'), to: delegate
dependencies {
classpath libs.carrotsearch.randomizedtesting.runner
diff --git a/gradle/validation/git-status.gradle b/gradle/validation/git-status.gradle
index 8893ff7b552..17fa3527511 100644
--- a/gradle/validation/git-status.gradle
+++ b/gradle/validation/git-status.gradle
@@ -17,20 +17,19 @@
// This verifies local git repository's status.
-import org.eclipse.jgit.api.*
-import org.eclipse.jgit.storage.file.FileRepositoryBuilder
-import org.eclipse.jgit.errors.*
-
import java.nio.file.FileVisitResult
import java.nio.file.Files
-import java.nio.file.SimpleFileVisitor
import java.nio.file.Path
+import java.nio.file.SimpleFileVisitor
import java.nio.file.attribute.BasicFileAttributes
+import org.eclipse.jgit.api.Git
+import org.eclipse.jgit.errors.NoWorkTreeException
+import org.eclipse.jgit.errors.NotSupportedException
+import org.eclipse.jgit.errors.RepositoryNotFoundException
+import org.eclipse.jgit.storage.file.FileRepositoryBuilder
buildscript {
- repositories {
- mavenCentral()
- }
+ apply from: rootProject.file('build-tools/build-infra/declare-repositories.gradle'), to: delegate
dependencies {
classpath libs.eclipse.jgit.jgit
diff --git a/gradle/validation/jar-checks.gradle b/gradle/validation/jar-checks.gradle
index 2dfd434098a..8000ff20b94 100644
--- a/gradle/validation/jar-checks.gradle
+++ b/gradle/validation/jar-checks.gradle
@@ -31,9 +31,7 @@ def failOnError = true
// We're using commons-codec for computing checksums.
buildscript {
- repositories {
- mavenCentral()
- }
+ apply from: rootProject.file('build-tools/build-infra/declare-repositories.gradle'), to: delegate
dependencies {
classpath libs.commonscodec.commonscodec
diff --git a/gradle/validation/rat-sources.gradle b/gradle/validation/rat-sources.gradle
index dce061407ca..27c00a4ddf1 100644
--- a/gradle/validation/rat-sources.gradle
+++ b/gradle/validation/rat-sources.gradle
@@ -19,9 +19,7 @@ import groovy.xml.XmlSlurper
import org.eclipse.jgit.storage.file.FileRepositoryBuilder
buildscript {
- repositories {
- mavenCentral()
- }
+ apply from: rootProject.file('build-tools/build-infra/declare-repositories.gradle'), to: delegate
dependencies {
classpath libs.eclipse.jgit.jgit
diff --git a/settings.gradle b/settings.gradle
index be01caa7fd7..c942d5857a2 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -16,10 +16,7 @@
*/
pluginManagement {
- repositories {
- mavenCentral()
- gradlePluginPortal()
- }
+ apply from: file("build-tools/build-infra/declare-repositories.gradle"), to: delegate
includeBuild("build-tools/build-infra")
}
diff --git a/solr/docker/build.gradle b/solr/docker/build.gradle
index 2674921038d..05fa30e3e45 100644
--- a/solr/docker/build.gradle
+++ b/solr/docker/build.gradle
@@ -17,9 +17,8 @@
import java.util.regex.Matcher
import java.util.regex.Pattern
-import org.apache.commons.codec.digest.DigestUtils
-import org.gradle.process.ExecOperations
import javax.inject.Inject
+import org.apache.commons.codec.digest.DigestUtils
description = 'Solr Docker image'
@@ -140,9 +139,8 @@ dependencies {
// We're using commons-codec for computing checksums.
buildscript {
- repositories {
- mavenCentral()
- }
+ apply from: rootProject.file('build-tools/build-infra/declare-repositories.gradle'), to: delegate
+
dependencies {
classpath libs.commonscodec.commonscodec
}
diff --git a/solr/ui/build.gradle.kts b/solr/ui/build.gradle.kts
index b91ee268c90..0d76bafc4d8 100644
--- a/solr/ui/build.gradle.kts
+++ b/solr/ui/build.gradle.kts
@@ -27,8 +27,9 @@ repositories {
includeGroupAndSubgroups("com.google")
}
}
- mavenCentral()
}
+// mavenCentral / enterprise mirror, shared with the rest of the build.
+apply(from = rootProject.file("build-tools/build-infra/declare-repositories.gradle"))
plugins {
alias(libs.plugins.kotlin.multiplatform)