diff --git a/build-conventions/build.gradle b/build-conventions/build.gradle index 32fedb22b0868..1283ecd78360f 100644 --- a/build-conventions/build.gradle +++ b/build-conventions/build.gradle @@ -11,9 +11,6 @@ import org.gradle.plugins.ide.eclipse.model.SourceFolder buildscript { repositories { - maven { - url 'https://jitpack.io' - } mavenCentral() } } @@ -68,10 +65,6 @@ gradlePlugin { } repositories { - maven { - url 'https://jitpack.io' - } - mavenCentral() gradlePluginPortal() } diff --git a/build-conventions/src/main/java/org/elasticsearch/gradle/internal/conventions/PublishPlugin.java b/build-conventions/src/main/java/org/elasticsearch/gradle/internal/conventions/PublishPlugin.java index d5244a8143fa3..66ee72da19633 100644 --- a/build-conventions/src/main/java/org/elasticsearch/gradle/internal/conventions/PublishPlugin.java +++ b/build-conventions/src/main/java/org/elasticsearch/gradle/internal/conventions/PublishPlugin.java @@ -8,10 +8,13 @@ package org.elasticsearch.gradle.internal.conventions; -import org.elasticsearch.gradle.internal.conventions.precommit.PomValidationPrecommitPlugin; +import groovy.util.Node; + import com.github.jengelman.gradle.plugins.shadow.ShadowExtension; import com.github.jengelman.gradle.plugins.shadow.ShadowPlugin; -import groovy.util.Node; + +import org.elasticsearch.gradle.internal.conventions.info.GitInfo; +import org.elasticsearch.gradle.internal.conventions.precommit.PomValidationPrecommitPlugin; import org.elasticsearch.gradle.internal.conventions.util.Util; import org.elasticsearch.gradle.internal.conventions.info.GitInfo; import org.gradle.api.NamedDomainObjectSet; @@ -35,6 +38,7 @@ import org.gradle.api.tasks.bundling.Jar; import org.gradle.initialization.layout.BuildLayout; import org.gradle.language.base.plugins.LifecycleBasePlugin; +import org.w3c.dom.Element; import javax.inject.Inject; import java.io.File; @@ -64,6 +68,7 @@ public void apply(Project project) { configureSourcesJar(project); configurePomGeneration(project); configurePublications(project); + formatGeneratedPom(project); } private void configurePublications(Project project) { @@ -187,4 +192,31 @@ static void configureSourcesJar(Project project) { project.getTasks().named(BasePlugin.ASSEMBLE_TASK_NAME).configure(t -> t.dependsOn(sourcesJarTask)); }); } + + /** + * Format the generated pom files to be in a sort of reproducible order. + */ + private void formatGeneratedPom(Project project) { + var publishing = project.getExtensions().getByType(PublishingExtension.class); + final var mavenPublications = publishing.getPublications().withType(MavenPublication.class); + mavenPublications.configureEach(publication -> { + publication.getPom().withXml(xml -> { + // Add some pom formatting + formatDependencies(xml); + }); + }); + } + + /** + * just ensure we put dependencies to the end. more a cosmetic thing than anything else + * */ + private void formatDependencies(XmlProvider xml) { + Element rootElement = xml.asElement(); + var dependencies = rootElement.getElementsByTagName("dependencies"); + if (dependencies.getLength() == 1 && dependencies.item(0) != null) { + org.w3c.dom.Node item = dependencies.item(0); + rootElement.removeChild(item); + rootElement.appendChild(item); + } + } } diff --git a/build-tools-internal/build.gradle b/build-tools-internal/build.gradle index b787454d50a0c..cd521bfa84270 100644 --- a/build-tools-internal/build.gradle +++ b/build-tools-internal/build.gradle @@ -218,9 +218,6 @@ tasks.named('licenseHeaders').configure { *****************************************************************************/ repositories { - maven { - url 'https://jitpack.io' - } mavenCentral() gradlePluginPortal() } diff --git a/build-tools-internal/settings.gradle b/build-tools-internal/settings.gradle index 1b4fb1215a59d..8c88d36046768 100644 --- a/build-tools-internal/settings.gradle +++ b/build-tools-internal/settings.gradle @@ -1,8 +1,5 @@ pluginManagement { repositories { - maven { - url 'https://jitpack.io' - } mavenCentral() gradlePluginPortal() } diff --git a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/ElasticsearchJavadocPluginFuncTest.groovy b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/ElasticsearchJavadocPluginFuncTest.groovy index f5c4b5bf3db24..8752b9eed4a48 100644 --- a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/ElasticsearchJavadocPluginFuncTest.groovy +++ b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/ElasticsearchJavadocPluginFuncTest.groovy @@ -19,22 +19,22 @@ class ElasticsearchJavadocPluginFuncTest extends AbstractGradleFuncTest { given: someLibProject() subProject("some-depending-lib") { - buildFile << """ + buildFile << """ plugins { id 'elasticsearch.java-doc' id 'java' } group = 'org.acme.depending' - + dependencies { implementation project(':some-lib') } """ classFile('org.acme.depending.SomeDepending') << """ package org.acme.depending; - + import org.acme.Something; - + public class SomeDepending { public Something createSomething() { return new Something(); @@ -68,14 +68,14 @@ class ElasticsearchJavadocPluginFuncTest extends AbstractGradleFuncTest { given: someLibProject() << """version = 1.0""" subProject("some-depending-lib") { - buildFile << """ + buildFile << """ plugins { id 'elasticsearch.java-doc' - id 'com.github.johnrengelman.shadow' version '7.1.2' + id 'com.gradleup.shadow' id 'java' } group = 'org.acme.depending' - + dependencies { implementation project(':some-lib') shadow project(':some-shadowed-lib') @@ -83,9 +83,9 @@ class ElasticsearchJavadocPluginFuncTest extends AbstractGradleFuncTest { """ classFile('org.acme.depending.SomeDepending') << """ package org.acme.depending; - + import org.acme.Something; - + public class SomeDepending { public Something createSomething() { return new Something(); @@ -94,9 +94,9 @@ class ElasticsearchJavadocPluginFuncTest extends AbstractGradleFuncTest { """ classFile('org.acme.depending.SomeShadowedDepending') << """ package org.acme.depending; - + import org.acme.shadowed.Shadowed; - + public class SomeShadowedDepending { public Shadowed createShadowed() { return new Shadowed(); @@ -114,7 +114,7 @@ class ElasticsearchJavadocPluginFuncTest extends AbstractGradleFuncTest { """ classFile('org.acme.shadowed.Shadowed') << """ package org.acme.shadowed; - + public class Shadowed { } """ @@ -145,22 +145,22 @@ class ElasticsearchJavadocPluginFuncTest extends AbstractGradleFuncTest { tasks.named("javadoc").configure { enabled = false } """ subProject("some-depending-lib") { - buildFile << """ + buildFile << """ plugins { id 'elasticsearch.java-doc' id 'java' } group = 'org.acme.depending' - + dependencies { implementation project(':some-lib') } """ classFile('org.acme.depending.SomeDepending') << """ package org.acme.depending; - + import org.acme.Something; - + public class SomeDepending { public Something createSomething() { return new Something(); @@ -196,7 +196,7 @@ class ElasticsearchJavadocPluginFuncTest extends AbstractGradleFuncTest { classFile('org.acme.Something') << """ package org.acme; - + public class Something { } """ diff --git a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/PublishPluginFuncTest.groovy b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/PublishPluginFuncTest.groovy index 12d0ce41e105e..74b6fbe051e86 100644 --- a/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/PublishPluginFuncTest.groovy +++ b/build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/PublishPluginFuncTest.groovy @@ -26,7 +26,7 @@ class PublishPluginFuncTest extends AbstractGradleFuncTest { id 'elasticsearch.java' id 'elasticsearch.publish' } - + version = "1.0" group = 'org.acme' description = "custom project description" @@ -87,13 +87,13 @@ class PublishPluginFuncTest extends AbstractGradleFuncTest { plugins { id 'elasticsearch.java' id 'elasticsearch.publish' - id 'com.github.johnrengelman.shadow' + id 'com.gradleup.shadow' } - + repositories { mavenCentral() } - + dependencies { implementation 'org.slf4j:log4j-over-slf4j:1.7.30' shadow 'org.slf4j:slf4j-api:1.7.30' @@ -107,8 +107,8 @@ class PublishPluginFuncTest extends AbstractGradleFuncTest { } } version = "1.0" - group = 'org.acme' - description = 'some description' + group = 'org.acme' + description = 'some description' """ when: @@ -172,11 +172,11 @@ class PublishPluginFuncTest extends AbstractGradleFuncTest { plugins { id 'elasticsearch.java' id 'elasticsearch.publish' - id 'com.github.johnrengelman.shadow' + id 'com.gradleup.shadow' } dependencies { - shadow project(":someLib") + shadow project(":someLib") } publishing { repositories { @@ -189,10 +189,10 @@ class PublishPluginFuncTest extends AbstractGradleFuncTest { allprojects { apply plugin: 'elasticsearch.java' version = "1.0" - group = 'org.acme' + group = 'org.acme' } - description = 'some description' + description = 'some description' """ when: @@ -258,15 +258,15 @@ class PublishPluginFuncTest extends AbstractGradleFuncTest { plugins { id 'elasticsearch.internal-es-plugin' id 'elasticsearch.publish' - id 'com.github.johnrengelman.shadow' + id 'com.gradleup.shadow' } - + esplugin { name = 'hello-world-plugin' classname 'org.acme.HelloWorldPlugin' description = "custom project description" } - + publishing { repositories { maven { @@ -274,13 +274,13 @@ class PublishPluginFuncTest extends AbstractGradleFuncTest { } } } - + // requires elasticsearch artifact available tasks.named('bundlePlugin').configure { enabled = false } licenseFile.set(file('license.txt')) noticeFile.set(file('notice.txt')) version = "1.0" - group = 'org.acme' + group = 'org.acme' """ when: @@ -329,7 +329,6 @@ class PublishPluginFuncTest extends AbstractGradleFuncTest { https://www.elastic.co - """ ) } @@ -345,19 +344,19 @@ class PublishPluginFuncTest extends AbstractGradleFuncTest { id 'elasticsearch.internal-es-plugin' id 'elasticsearch.publish' } - + esplugin { name = 'hello-world-plugin' classname 'org.acme.HelloWorldPlugin' description = "custom project description" } - + // requires elasticsearch artifact available tasks.named('bundlePlugin').configure { enabled = false } licenseFile.set(file('license.txt')) noticeFile.set(file('notice.txt')) version = "2.0" - group = 'org.acme' + group = 'org.acme' """ when: @@ -417,9 +416,9 @@ class PublishPluginFuncTest extends AbstractGradleFuncTest { apply plugin:'elasticsearch.publish' version = "1.0" - group = 'org.acme' + group = 'org.acme' description = "just a test project" - + ext.projectLicenses.set(['The Apache Software License, Version 2.0': 'http://www.apache.org/licenses/LICENSE-2.0']) """ diff --git a/build-tools/build.gradle b/build-tools/build.gradle index 98fa8bb32ec82..068ac129ce052 100644 --- a/build-tools/build.gradle +++ b/build-tools/build.gradle @@ -8,9 +8,6 @@ buildscript { repositories { - maven { - url 'https://jitpack.io' - } mavenCentral() } } @@ -116,9 +113,6 @@ configurations { } repositories { - maven { - url 'https://jitpack.io' - } mavenCentral() gradlePluginPortal() } diff --git a/build.gradle b/build.gradle index e8b302153a46b..3d2148480a4b6 100644 --- a/build.gradle +++ b/build.gradle @@ -35,10 +35,6 @@ import static java.nio.file.StandardCopyOption.REPLACE_EXISTING buildscript { repositories { - maven { - url 'https://jitpack.io' - } - mavenCentral() } } diff --git a/gradle/build.versions.toml b/gradle/build.versions.toml index ac02ae4aec073..185531d163674 100644 --- a/gradle/build.versions.toml +++ b/gradle/build.versions.toml @@ -34,7 +34,7 @@ maven-model = "org.apache.maven:maven-model:3.6.2" mockito-core = "org.mockito:mockito-core:1.9.5" nebula-info = "com.netflix.nebula:gradle-info-plugin:11.3.3" reflections = "org.reflections:reflections:0.9.12" -shadow-plugin = "com.github.breskeby:shadow:3b035f2" +shadow-plugin = "com.gradleup.shadow:shadow-gradle-plugin:8.3.5" spock-core = { group = "org.spockframework", name="spock-core", version.ref="spock" } spock-junit4 = { group = "org.spockframework", name="spock-junit4", version.ref="spock" } spock-platform = { group = "org.spockframework", name="spock-bom", version.ref="spock" } diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index fda06179ced6d..0abc67f7aadd9 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -419,6 +419,11 @@ + + + + + @@ -904,14 +909,19 @@ + + + + + - - - + + + @@ -1309,6 +1319,11 @@ + + + + + @@ -2130,6 +2145,11 @@ + + + + + @@ -2145,6 +2165,11 @@ + + + + + @@ -2963,6 +2988,11 @@ + + + + + @@ -2973,6 +3003,11 @@ + + + + + @@ -3103,6 +3138,16 @@ + + + + + + + + + + @@ -3158,6 +3203,11 @@ + + + + + @@ -3486,6 +3536,16 @@ + + + + + + + + + + @@ -4316,6 +4376,11 @@ + + + + + @@ -4366,6 +4431,11 @@ + + + + + @@ -4406,6 +4476,11 @@ + + + + + @@ -4571,6 +4646,11 @@ + + + + + diff --git a/plugins/repository-hdfs/hadoop-client-api/build.gradle b/plugins/repository-hdfs/hadoop-client-api/build.gradle index 4ac6f79530fcb..24e4213780fe2 100644 --- a/plugins/repository-hdfs/hadoop-client-api/build.gradle +++ b/plugins/repository-hdfs/hadoop-client-api/build.gradle @@ -1,5 +1,5 @@ apply plugin: 'elasticsearch.build' -apply plugin: 'com.github.johnrengelman.shadow' +apply plugin: 'com.gradleup.shadow' dependencies { implementation "org.apache.hadoop:hadoop-client-api:${project.parent.versions.hadoop}" diff --git a/settings.gradle b/settings.gradle index 2b0c134e60e5f..8f1d03bdc0cb8 100644 --- a/settings.gradle +++ b/settings.gradle @@ -4,9 +4,6 @@ import org.elasticsearch.gradle.internal.toolchain.AdoptiumJdkToolchainResolver pluginManagement { repositories { - maven { - url 'https://jitpack.io' - } mavenCentral() gradlePluginPortal() } diff --git a/test/test-clusters/build.gradle b/test/test-clusters/build.gradle index 57bed37effeec..c0c9cd32b15ab 100644 --- a/test/test-clusters/build.gradle +++ b/test/test-clusters/build.gradle @@ -1,5 +1,5 @@ apply plugin: 'elasticsearch.java' -apply plugin: 'com.github.johnrengelman.shadow' +apply plugin: 'com.gradleup.shadow' dependencies { shadow("junit:junit:${versions.junit}") { diff --git a/x-pack/plugin/sql/jdbc/build.gradle b/x-pack/plugin/sql/jdbc/build.gradle index 154e7f80a34f6..c1cde00cbe106 100644 --- a/x-pack/plugin/sql/jdbc/build.gradle +++ b/x-pack/plugin/sql/jdbc/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'elasticsearch.build' apply plugin: 'elasticsearch.publish' -apply plugin: 'com.github.johnrengelman.shadow' +apply plugin: 'com.gradleup.shadow' description = 'JDBC driver for Elasticsearch' diff --git a/x-pack/plugin/sql/sql-cli/build.gradle b/x-pack/plugin/sql/sql-cli/build.gradle index 3ef764adcc29c..78251d83f43f6 100644 --- a/x-pack/plugin/sql/sql-cli/build.gradle +++ b/x-pack/plugin/sql/sql-cli/build.gradle @@ -8,7 +8,7 @@ import org.elasticsearch.gradle.internal.info.BuildParams */ apply plugin: 'elasticsearch.build' -apply plugin: 'com.github.johnrengelman.shadow' +apply plugin: 'com.gradleup.shadow' /* We don't use the 'application' plugin because it builds a zip and tgz which * we don't want. */