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 438cb64378e6..b38673e07581 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 @@ -23,6 +23,7 @@ import org.gradle.api.NamedDomainObjectSet; import org.gradle.api.Plugin; import org.gradle.api.Project; import org.gradle.api.XmlProvider; +import org.gradle.api.component.SoftwareComponent; import org.gradle.api.file.ProjectLayout; import org.gradle.api.plugins.BasePlugin; import org.gradle.api.plugins.BasePluginExtension; @@ -82,7 +83,8 @@ public class PublishPlugin implements Plugin { if (project1.getPlugins().hasPlugin(ShadowPlugin.class)) { configureWithShadowPlugin(project1, publication); } else if (project1.getPlugins().hasPlugin(JavaPlugin.class)) { - publication.from(project.getComponents().getByName("java")); + SoftwareComponent java = project.getComponents().getByName("java"); + publication.from(java); } }); project.getPlugins().withType(JavaPlugin.class, plugin -> { diff --git a/build-tools/src/main/java/org/elasticsearch/gradle/plugin/PluginBuildPlugin.java b/build-tools/src/main/java/org/elasticsearch/gradle/plugin/PluginBuildPlugin.java index 62786792beea..4b633a7e60b7 100644 --- a/build-tools/src/main/java/org/elasticsearch/gradle/plugin/PluginBuildPlugin.java +++ b/build-tools/src/main/java/org/elasticsearch/gradle/plugin/PluginBuildPlugin.java @@ -144,25 +144,28 @@ public class PluginBuildPlugin implements Plugin { } private static void configurePublishing(Project project, PluginPropertiesExtension extension) { - if (project.getPlugins().hasPlugin(MavenPublishPlugin.class)) { - PublishingExtension publishingExtension = project.getExtensions().getByType(PublishingExtension.class); - MavenPublication elastic = publishingExtension.getPublications().maybeCreate("elastic", MavenPublication.class); - if (extension.isHasClientJar()) { - project.getTasks() - .withType(Jar.class) - .configureEach(jar -> jar.getArchiveBaseName().set(jar.getArchiveBaseName().get() + "-client")); - project.getTasks().withType(GenerateMavenPom.class).configureEach(pomTask -> { - final BasePluginExtension basepluginExtension = project.getExtensions().getByType(BasePluginExtension.class); - String archivesName = basepluginExtension.getArchivesName().get(); - pomTask.setDestination( - new File(project.getBuildDir(), "/distributions/" + archivesName + "-client-" + project.getVersion() + ".pom") - ); - }); - elastic.setArtifactId(extension.getName() + "-client"); - } else { - elastic.setArtifactId(extension.getName()); - } - } + project.getPlugins().withType(MavenPublishPlugin.class).configureEach(plugin -> { + project.afterEvaluate(project1 -> { + PublishingExtension publishingExtension = project.getExtensions().getByType(PublishingExtension.class); + MavenPublication elastic = publishingExtension.getPublications().maybeCreate("elastic", MavenPublication.class); + if (extension.isHasClientJar()) { + project.getTasks() + .withType(Jar.class) + .configureEach(jar -> jar.getArchiveBaseName().set(jar.getArchiveBaseName().get() + "-client")); + project.getTasks().withType(GenerateMavenPom.class).configureEach(pomTask -> { + final BasePluginExtension basepluginExtension = project.getExtensions().getByType(BasePluginExtension.class); + String archivesName = basepluginExtension.getArchivesName().get(); + pomTask.setDestination( + new File(project.getBuildDir(), "/distributions/" + archivesName + "-client-" + project.getVersion() + ".pom") + ); + }); + publishingExtension.getPublications().withType(MavenPublication.class).configureEach(publication -> { + publication.setArtifactId(extension.getName() + "-client"); + }); + publishingExtension.repositories(repositories -> {}); + } + }); + }); } private static void configureDependencies(final Project project) { diff --git a/modules/aggs-matrix-stats/build.gradle b/modules/aggs-matrix-stats/build.gradle index fdf4f53404c0..f9692517e458 100644 --- a/modules/aggs-matrix-stats/build.gradle +++ b/modules/aggs-matrix-stats/build.gradle @@ -6,6 +6,7 @@ * Side Public License, v 1. */ apply plugin: 'elasticsearch.legacy-yaml-rest-test' +apply plugin: 'elasticsearch.publish' esplugin { description 'Adds aggregations whose input are a list of numeric fields and output includes a matrix.' diff --git a/modules/lang-mustache/build.gradle b/modules/lang-mustache/build.gradle index de0b5d2b59ab..9ad3453fbe9d 100644 --- a/modules/lang-mustache/build.gradle +++ b/modules/lang-mustache/build.gradle @@ -8,6 +8,7 @@ apply plugin: 'elasticsearch.legacy-yaml-rest-test' apply plugin: 'elasticsearch.legacy-java-rest-test' apply plugin: 'elasticsearch.internal-cluster-test' +apply plugin: 'elasticsearch.publish' esplugin { description 'Mustache scripting integration for Elasticsearch' diff --git a/modules/mapper-extras/build.gradle b/modules/mapper-extras/build.gradle index a20511954423..26acf06af7da 100644 --- a/modules/mapper-extras/build.gradle +++ b/modules/mapper-extras/build.gradle @@ -7,6 +7,7 @@ */ apply plugin: 'elasticsearch.legacy-yaml-rest-test' apply plugin: 'elasticsearch.internal-cluster-test' +apply plugin: 'elasticsearch.publish' esplugin { description 'Adds advanced field mappers' diff --git a/modules/parent-join/build.gradle b/modules/parent-join/build.gradle index dad481ba7560..7feea4563435 100644 --- a/modules/parent-join/build.gradle +++ b/modules/parent-join/build.gradle @@ -7,6 +7,8 @@ */ apply plugin: 'elasticsearch.legacy-yaml-rest-test' apply plugin: 'elasticsearch.internal-cluster-test' +apply plugin: 'elasticsearch.publish' + esplugin { description 'This module adds the support parent-child queries and aggregations' diff --git a/modules/percolator/build.gradle b/modules/percolator/build.gradle index b116dc30984e..2702946289e6 100644 --- a/modules/percolator/build.gradle +++ b/modules/percolator/build.gradle @@ -7,6 +7,7 @@ */ apply plugin: 'elasticsearch.legacy-yaml-rest-test' apply plugin: 'elasticsearch.internal-cluster-test' +apply plugin: 'elasticsearch.publish' esplugin { description 'Percolator module adds capability to index queries and query these queries by specifying documents' diff --git a/modules/rank-eval/build.gradle b/modules/rank-eval/build.gradle index f0af0c6ca398..9a144f9fc6db 100644 --- a/modules/rank-eval/build.gradle +++ b/modules/rank-eval/build.gradle @@ -7,6 +7,7 @@ */ apply plugin: 'elasticsearch.legacy-yaml-rest-test' apply plugin: 'elasticsearch.internal-cluster-test' +apply plugin: 'elasticsearch.publish' esplugin { description 'The Rank Eval module adds APIs to evaluate ranking quality.' diff --git a/modules/reindex/build.gradle b/modules/reindex/build.gradle index 34493ee32768..b6028c8bb868 100644 --- a/modules/reindex/build.gradle +++ b/modules/reindex/build.gradle @@ -19,6 +19,7 @@ apply plugin: 'elasticsearch.jdk-download' apply plugin: 'elasticsearch.legacy-yaml-rest-test' apply plugin: 'elasticsearch.legacy-java-rest-test' apply plugin: 'elasticsearch.internal-cluster-test' +apply plugin: 'elasticsearch.publish' esplugin { description 'The Reindex module adds APIs to reindex from one index to another or update documents in place.' diff --git a/modules/transport-netty4/build.gradle b/modules/transport-netty4/build.gradle index d6c687dd6c6e..a5afe8244918 100644 --- a/modules/transport-netty4/build.gradle +++ b/modules/transport-netty4/build.gradle @@ -13,6 +13,7 @@ import org.elasticsearch.gradle.internal.test.InternalClusterTestPlugin apply plugin: 'elasticsearch.legacy-yaml-rest-test' apply plugin: 'elasticsearch.legacy-java-rest-test' apply plugin: 'elasticsearch.internal-cluster-test' +apply plugin: 'elasticsearch.publish' /* TODOs: diff --git a/plugins/analysis-icu/build.gradle b/plugins/analysis-icu/build.gradle index 7b3253376dfc..41f3950f40ee 100644 --- a/plugins/analysis-icu/build.gradle +++ b/plugins/analysis-icu/build.gradle @@ -9,6 +9,7 @@ import de.thetaphi.forbiddenapis.gradle.CheckForbiddenApis */ apply plugin: 'elasticsearch.legacy-yaml-rest-test' apply plugin: 'elasticsearch.internal-cluster-test' +apply plugin: 'elasticsearch.publish' esplugin { description 'The ICU Analysis plugin integrates the Lucene ICU module into Elasticsearch, adding ICU-related analysis components.' diff --git a/plugins/build.gradle b/plugins/build.gradle index f7d73b72e100..a9bb4ac93faf 100644 --- a/plugins/build.gradle +++ b/plugins/build.gradle @@ -14,7 +14,6 @@ subprojects { configure(subprojects.findAll { it.parent.path == project.path }) { group = 'org.elasticsearch.plugin' apply plugin: 'elasticsearch.internal-es-plugin' - apply plugin: 'elasticsearch.publish' esplugin { // for local ES plugins, the name of the plugin is the same as the directory diff --git a/plugins/transport-nio/build.gradle b/plugins/transport-nio/build.gradle index 771610eb9798..c75dc8859dd5 100644 --- a/plugins/transport-nio/build.gradle +++ b/plugins/transport-nio/build.gradle @@ -9,6 +9,7 @@ import org.elasticsearch.gradle.internal.info.BuildParams */ apply plugin: "elasticsearch.publish" apply plugin: 'elasticsearch.internal-cluster-test' +apply plugin: 'elasticsearch.publish' esplugin { description 'The nio transport.' diff --git a/x-pack/plugin/identity-provider/build.gradle b/x-pack/plugin/identity-provider/build.gradle index b15f28662324..fca5b4327e95 100644 --- a/x-pack/plugin/identity-provider/build.gradle +++ b/x-pack/plugin/identity-provider/build.gradle @@ -1,6 +1,5 @@ import org.elasticsearch.gradle.internal.info.BuildParams apply plugin: 'elasticsearch.internal-es-plugin' -apply plugin: 'elasticsearch.publish' apply plugin: 'elasticsearch.internal-cluster-test' esplugin { name 'x-pack-identity-provider' diff --git a/x-pack/transport-client/build.gradle b/x-pack/transport-client/build.gradle index e209e00404ce..29c136522e3b 100644 --- a/x-pack/transport-client/build.gradle +++ b/x-pack/transport-client/build.gradle @@ -1,4 +1,6 @@ apply plugin: 'elasticsearch.build' +apply plugin: 'elasticsearch.publish' + group = 'org.elasticsearch.client' base { @@ -27,4 +29,4 @@ tasks.named("forbiddenApisTest").configure { tasks.named('testTestingConventions').configure { baseClass 'com.carrotsearch.randomizedtesting.RandomizedTest' -} \ No newline at end of file +}