diff --git a/buildSrc/src/main/java/org/opensearch/gradle/pluginzip/Publish.java b/buildSrc/src/main/java/org/opensearch/gradle/pluginzip/Publish.java index 0a3b198b4d3..d83384ec7d1 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/pluginzip/Publish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/pluginzip/Publish.java @@ -7,18 +7,17 @@ */ package org.opensearch.gradle.pluginzip; -import java.util.*; import org.gradle.api.Plugin; import org.gradle.api.Project; +import org.gradle.api.publish.Publication; import org.gradle.api.publish.PublishingExtension; import org.gradle.api.publish.maven.MavenPublication; import org.gradle.api.publish.maven.plugins.MavenPublishPlugin; + import java.nio.file.Path; import org.gradle.api.Task; public class Publish implements Plugin { - private Project project; - public final static String EXTENSION_NAME = "zipmavensettings"; public final static String PUBLICATION_NAME = "pluginZip"; public final static String STAGING_REPO = "zipStaging"; @@ -38,7 +37,19 @@ public class Publish implements Plugin { }); }); publishing.publications(publications -> { - publications.create(PUBLICATION_NAME, MavenPublication.class, mavenZip -> { + final Publication publication = publications.findByName(PUBLICATION_NAME); + if (publication == null) { + publications.create(PUBLICATION_NAME, MavenPublication.class, mavenZip -> { + String zipGroup = "org.opensearch.plugin"; + String zipArtifact = project.getName(); + String zipVersion = getProperty("version", project); + mavenZip.artifact(project.getTasks().named("bundlePlugin")); + mavenZip.setGroupId(zipGroup); + mavenZip.setArtifactId(zipArtifact); + mavenZip.setVersion(zipVersion); + }); + } else { + final MavenPublication mavenZip = (MavenPublication) publication; String zipGroup = "org.opensearch.plugin"; String zipArtifact = project.getName(); String zipVersion = getProperty("version", project); @@ -46,7 +57,7 @@ public class Publish implements Plugin { mavenZip.setGroupId(zipGroup); mavenZip.setArtifactId(zipArtifact); mavenZip.setVersion(zipVersion); - }); + } }); }); } @@ -63,7 +74,6 @@ public class Publish implements Plugin { @Override public void apply(Project project) { - this.project = project; project.afterEvaluate(evaluatedProject -> { configMaven(project); Task validatePluginZipPom = project.getTasks().findByName("validatePluginZipPom"); @@ -72,10 +82,8 @@ public class Publish implements Plugin { } Task publishPluginZipPublicationToZipStagingRepository = project.getTasks() .findByName("publishPluginZipPublicationToZipStagingRepository"); - if (validatePluginZipPom != null) { - project.getTasks() - .getByName("publishPluginZipPublicationToZipStagingRepository") - .dependsOn("generatePomFileForNebulaPublication"); + if (publishPluginZipPublicationToZipStagingRepository != null) { + publishPluginZipPublicationToZipStagingRepository.dependsOn("generatePomFileForNebulaPublication"); } }); } diff --git a/buildSrc/src/test/java/org/opensearch/gradle/pluginzip/PublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/pluginzip/PublishTests.java index 4ca1c856b32..851c450699b 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/pluginzip/PublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/pluginzip/PublishTests.java @@ -13,6 +13,7 @@ import org.gradle.testkit.runner.GradleRunner; import org.gradle.testfixtures.ProjectBuilder; import org.gradle.api.Project; import org.opensearch.gradle.test.GradleUnitTestCase; +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.rules.TemporaryFolder; @@ -31,7 +32,6 @@ import org.apache.maven.model.io.xpp3.MavenXpp3Reader; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import java.io.FileReader; import org.gradle.api.tasks.bundling.Zip; -import org.gradle.internal.impldep.org.junit.After; import java.util.List; import java.util.ArrayList;