Allow to configure POM for ZIP publication (#3252)

Signed-off-by: Andriy Redko <andriy.redko@aiven.io>
This commit is contained in:
Andriy Redko 2022-05-10 12:18:36 -04:00 committed by GitHub
parent 132eabd675
commit f5c0b30a8e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 11 deletions

View File

@ -7,18 +7,17 @@
*/ */
package org.opensearch.gradle.pluginzip; package org.opensearch.gradle.pluginzip;
import java.util.*;
import org.gradle.api.Plugin; import org.gradle.api.Plugin;
import org.gradle.api.Project; import org.gradle.api.Project;
import org.gradle.api.publish.Publication;
import org.gradle.api.publish.PublishingExtension; import org.gradle.api.publish.PublishingExtension;
import org.gradle.api.publish.maven.MavenPublication; import org.gradle.api.publish.maven.MavenPublication;
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin; import org.gradle.api.publish.maven.plugins.MavenPublishPlugin;
import java.nio.file.Path; import java.nio.file.Path;
import org.gradle.api.Task; import org.gradle.api.Task;
public class Publish implements Plugin<Project> { public class Publish implements Plugin<Project> {
private Project project;
public final static String EXTENSION_NAME = "zipmavensettings"; public final static String EXTENSION_NAME = "zipmavensettings";
public final static String PUBLICATION_NAME = "pluginZip"; public final static String PUBLICATION_NAME = "pluginZip";
public final static String STAGING_REPO = "zipStaging"; public final static String STAGING_REPO = "zipStaging";
@ -38,7 +37,19 @@ public class Publish implements Plugin<Project> {
}); });
}); });
publishing.publications(publications -> { 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 zipGroup = "org.opensearch.plugin";
String zipArtifact = project.getName(); String zipArtifact = project.getName();
String zipVersion = getProperty("version", project); String zipVersion = getProperty("version", project);
@ -46,7 +57,7 @@ public class Publish implements Plugin<Project> {
mavenZip.setGroupId(zipGroup); mavenZip.setGroupId(zipGroup);
mavenZip.setArtifactId(zipArtifact); mavenZip.setArtifactId(zipArtifact);
mavenZip.setVersion(zipVersion); mavenZip.setVersion(zipVersion);
}); }
}); });
}); });
} }
@ -63,7 +74,6 @@ public class Publish implements Plugin<Project> {
@Override @Override
public void apply(Project project) { public void apply(Project project) {
this.project = project;
project.afterEvaluate(evaluatedProject -> { project.afterEvaluate(evaluatedProject -> {
configMaven(project); configMaven(project);
Task validatePluginZipPom = project.getTasks().findByName("validatePluginZipPom"); Task validatePluginZipPom = project.getTasks().findByName("validatePluginZipPom");
@ -72,10 +82,8 @@ public class Publish implements Plugin<Project> {
} }
Task publishPluginZipPublicationToZipStagingRepository = project.getTasks() Task publishPluginZipPublicationToZipStagingRepository = project.getTasks()
.findByName("publishPluginZipPublicationToZipStagingRepository"); .findByName("publishPluginZipPublicationToZipStagingRepository");
if (validatePluginZipPom != null) { if (publishPluginZipPublicationToZipStagingRepository != null) {
project.getTasks() publishPluginZipPublicationToZipStagingRepository.dependsOn("generatePomFileForNebulaPublication");
.getByName("publishPluginZipPublicationToZipStagingRepository")
.dependsOn("generatePomFileForNebulaPublication");
} }
}); });
} }

View File

@ -13,6 +13,7 @@ import org.gradle.testkit.runner.GradleRunner;
import org.gradle.testfixtures.ProjectBuilder; import org.gradle.testfixtures.ProjectBuilder;
import org.gradle.api.Project; import org.gradle.api.Project;
import org.opensearch.gradle.test.GradleUnitTestCase; import org.opensearch.gradle.test.GradleUnitTestCase;
import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.TemporaryFolder; 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 org.codehaus.plexus.util.xml.pull.XmlPullParserException;
import java.io.FileReader; import java.io.FileReader;
import org.gradle.api.tasks.bundling.Zip; import org.gradle.api.tasks.bundling.Zip;
import org.gradle.internal.impldep.org.junit.After;
import java.util.List; import java.util.List;
import java.util.ArrayList; import java.util.ArrayList;