Skip to content

Commit 914dfa4

Browse files
committed
avoid duplicated publication
1 parent 9cc855a commit 914dfa4

File tree

5 files changed

+17
-49
lines changed

5 files changed

+17
-49
lines changed

plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/EdcBuildBasePlugin.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,9 @@ public void apply(Project target) {
4141
plugins.apply(MavenPublishPlugin.class);
4242
plugins.apply(JavaPlugin.class);
4343
plugins.apply(TestSummaryPlugin.class);
44-
plugins.apply(com.vanniktech.maven.publish.MavenPublishPlugin.class);
4544

4645
if (target == target.getRootProject()) {
4746
plugins.apply(ChecksumPlugin.class);
48-
// The nexus publish plugin MUST be applied to the root project only, it'll throw an exception otherwise
49-
// target.getPlugins().apply(NexusPublishPlugin.class); TODO: here apply the publish plugin
5047
plugins.apply(OpenApiMergerPlugin.class);
5148
plugins.apply(ModuleNamesPlugin.class);
5249
}

plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/EdcBuildPlugin.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import org.gradle.api.Plugin;
2020
import org.gradle.api.Project;
2121
import org.gradle.api.publish.maven.tasks.AbstractPublishToMaven;
22-
import org.gradle.api.tasks.TaskCollection;
2322
import org.gradle.plugins.signing.Sign;
2423

2524
import static java.util.List.of;
@@ -51,12 +50,6 @@ public void apply(Project target) {
5150
// apply all plugins
5251
target.getPlugins().apply(EdcBuildBasePlugin.class);
5352

54-
// add task dependency to permit publication
55-
var publish = target.getTasks().findByName("publishMavenJavaPublicationToMavenCentralRepository");
56-
if (publish != null) {
57-
publish.dependsOn("signMavenPublication");
58-
}
59-
6053
target.getTasks().withType(AbstractPublishToMaven.class).configureEach(task -> {
6154
var signTasks = target.getTasks().withType(Sign.class);
6255
task.mustRunAfter(signTasks);

plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/conventions/MavenArtifactConvention.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,21 @@
3838
class MavenArtifactConvention implements EdcConvention {
3939

4040
private static final String PROJECT_URL = "https://projects.eclipse.org/projects/technology.edc";
41+
private static final boolean DEFAULT_SHOULD_PUBLISH = true;
4142

4243
@Override
4344
public void apply(Project target) {
4445
target.afterEvaluate(project -> {
4546
var pubExt = requireExtension(project, PublishingExtension.class);
46-
var pomExt = requireExtension(project, BuildExtension.class).getPom();
47+
var buildExtension = requireExtension(project, BuildExtension.class);
48+
var pomExt = buildExtension.getPom();
49+
50+
var shouldPublish = buildExtension.getPublish().getOrElse(DEFAULT_SHOULD_PUBLISH);
51+
52+
if (!shouldPublish) {
53+
pubExt.getPublications().clear();
54+
return;
55+
}
4756

4857
pubExt.getPublications().stream()
4958
.filter(p -> p instanceof MavenPublication)

plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/conventions/MavenPublicationConvention.java

Lines changed: 5 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -15,57 +15,24 @@
1515
package org.eclipse.edc.plugins.edcbuild.conventions;
1616

1717
import com.vanniktech.maven.publish.MavenPublishBaseExtension;
18-
import org.eclipse.edc.plugins.edcbuild.extensions.BuildExtension;
18+
import com.vanniktech.maven.publish.MavenPublishPlugin;
1919
import org.gradle.api.Project;
20-
import org.gradle.api.publish.PublishingExtension;
21-
import org.gradle.api.publish.maven.MavenPublication;
2220

23-
import static org.eclipse.edc.plugins.edcbuild.conventions.ConventionFunctions.requireExtension;
24-
25-
/**
26-
* Adds a Maven publication to a project.
27-
*/
2821
public class MavenPublicationConvention implements EdcConvention {
2922

30-
/**
31-
* Default setting for publication of a project.
32-
*/
33-
private static final boolean DEFAULT_SHOULD_PUBLISH = true;
34-
35-
/**
36-
* Checks whether publishing is explicitly set to false for the target project and, if it is
37-
* not, adds a Maven publication to the project, if none exists. This only applies for
38-
* sub-projects that contain a build.gradle.kts file.
39-
*
40-
* @param target The project to which the convention applies
41-
*/
4223
@Override
4324
public void apply(Project target) {
4425
// do not publish the root project or modules without a build.gradle.kts
4526
if (target.getRootProject() == target || !target.file("build.gradle.kts").exists()) {
4627
return;
4728
}
4829

49-
var buildExt = requireExtension(target, BuildExtension.class);
50-
var shouldPublish = buildExt.getPublish().getOrElse(DEFAULT_SHOULD_PUBLISH);
30+
target.getPlugins().apply(MavenPublishPlugin.class);
5131

52-
if (shouldPublish) {
53-
var pe = requireExtension(target, PublishingExtension.class);
32+
target.getExtensions().configure(MavenPublishBaseExtension.class, extension -> {
33+
extension.publishToMavenCentral(true);
34+
});
5435

55-
if (pe.getPublications().findByName(target.getName()) == null) {
56-
pe.publications(publications -> publications.create(target.getName(), MavenPublication.class,
57-
mavenPublication -> {
58-
mavenPublication.from(target.getComponents().getByName("java"));
59-
mavenPublication.setGroupId(buildExt.getPom().getGroupId());
60-
mavenPublication.suppressPomMetadataWarningsFor("testFixturesApiElements");
61-
mavenPublication.suppressPomMetadataWarningsFor("testFixturesRuntimeElements");
62-
}));
63-
}
64-
65-
target.getExtensions().configure(MavenPublishBaseExtension.class, extension -> {
66-
extension.publishToMavenCentral(true);
67-
});
68-
}
6936
}
7037

7138
}

plugins/edc-build/src/main/java/org/eclipse/edc/plugins/edcbuild/extensions/MavenPomExtension.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,12 @@ public abstract class MavenPomExtension {
3939

4040
public abstract Property<String> getScmUrl();
4141

42+
@Deprecated(since = "edc-build-0.1.0")
4243
public String getGroupId() {
4344
return groupId;
4445
}
4546

47+
@Deprecated(since = "edc-build-0.1.0")
4648
public void setGroupId(String groupId) {
4749
this.groupId = groupId;
4850
}

0 commit comments

Comments
 (0)