Allow to configure POM for ZIP publication (#3252)
Signed-off-by: Andriy Redko <andriy.redko@aiven.io>
This commit is contained in:
parent
132eabd675
commit
f5c0b30a8e
|
@ -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");
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue