Skip to content

Commit 738afc5

Browse files
authored
🔧 allow configuration of scm organizationi in pom attributes (#22)
* 🔧 allow configuration of scm organizationi in pom attributes * ♻️ rename maven publication to clarify that it is going to maven central * 👌 avoid explicitly resolving providers
1 parent 29cb23d commit 738afc5

2 files changed

Lines changed: 19 additions & 8 deletions

File tree

hypertrace-gradle-publish-maven-central-plugin/src/main/java/org/hypertrace/gradle/publishing/HypertracePublishMavenCentralExtension.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.hypertrace.gradle.publishing;
22

3-
import org.hypertrace.gradle.publishing.License;
43
import org.gradle.api.model.ObjectFactory;
54
import org.gradle.api.plugins.ExtensionAware;
65
import org.gradle.api.provider.Property;
@@ -15,6 +14,7 @@ public abstract class HypertracePublishMavenCentralExtension implements Extensio
1514
private static final String DEFAULT_DEVELOPER_ORG = "Hypertrace";
1615
private static final String DEFAULT_DEVELOPER_ORG_URL = "https://www.hypertrace.org";
1716
private static final String DEFAULT_PACKAGE_GROUP = "org.hypertrace";
17+
private static final String DEFAULT_SCM_ORGANIZATION = "hypertrace";
1818

1919
public final Property<String> url;
2020
public final Property<String> repoName;
@@ -25,6 +25,7 @@ public abstract class HypertracePublishMavenCentralExtension implements Extensio
2525
public final Property<String> developerOrganizationUrl;
2626
public final Property<License> license;
2727
public final Property<String> packageGroup;
28+
public final Property<String> scmOrganization;
2829

2930
@Inject
3031
public HypertracePublishMavenCentralExtension(ObjectFactory objectFactory) {
@@ -37,5 +38,6 @@ public HypertracePublishMavenCentralExtension(ObjectFactory objectFactory) {
3738
this.developerOrganizationUrl = objectFactory.property(String.class).convention(DEFAULT_DEVELOPER_ORG_URL);
3839
this.license = objectFactory.property(License.class);
3940
this.packageGroup = objectFactory.property(String.class).convention(DEFAULT_PACKAGE_GROUP);
41+
this.scmOrganization = objectFactory.property(String.class).convention(DEFAULT_SCM_ORGANIZATION);
4042
}
4143
}

hypertrace-gradle-publish-maven-central-plugin/src/main/java/org/hypertrace/gradle/publishing/PublishMavenCentralPlugin.java

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.gradle.api.Project;
1010
import org.gradle.api.UnknownDomainObjectException;
1111
import org.gradle.api.plugins.JavaPluginExtension;
12+
import org.gradle.api.provider.Provider;
1213
import org.gradle.api.publish.PublicationContainer;
1314
import org.gradle.api.publish.PublishingExtension;
1415
import org.gradle.api.publish.maven.MavenPublication;
@@ -104,6 +105,7 @@ private void addPublishRepository() {
104105
if (user.isPresent() && password.isPresent()) {
105106
getPublishingExtension().repositories(artifactRepositories ->
106107
artifactRepositories.maven(mavenArtifactRepository -> {
108+
mavenArtifactRepository.setName("mavenCentral");
107109
mavenArtifactRepository.setUrl(url);
108110
mavenArtifactRepository.credentials(passwordCredentials -> {
109111
passwordCredentials.setUsername(user.get());
@@ -155,14 +157,21 @@ private void addJavaLibraryPublicationWhenApplied(PublicationContainer publicati
155157
mavenPom.getDescription().set(project.getDescription());
156158

157159
// scm
158-
String repoName = this.extension.repoName.get();
159-
String scmConnection = String.format("scm:git:git://github.com/hypertrace/%s.git", repoName);
160-
String scmDeveloperConnection = String.format("scm:git:ssh://github.com:hypertrace/%s.git", repoName);
161-
String scmUrl = String.format("https://github.com/hypertrace/%s/tree/main", repoName);
160+
Provider<String> qualifiedRepoProvider =
161+
this.extension.scmOrganization.flatMap(
162+
repoName ->
163+
this.extension.repoName.map(
164+
orgName -> String.format("%s/%s", orgName, repoName)));
165+
Provider<String> scmConnectionProvider =
166+
qualifiedRepoProvider.map(qualifiedRepo -> String.format("scm:git:git://github.com/%s.git", qualifiedRepo));
167+
Provider<String> scmDeveloperConnectionProvider =
168+
qualifiedRepoProvider.map(qualifiedRepo -> String.format("scm:git:ssh://github.com:%s.git", qualifiedRepo));
169+
Provider<String> scmUrlProvider =
170+
qualifiedRepoProvider.map(qualifiedRepo -> String.format("https://github.com/%s/tree/main", qualifiedRepo));
162171
mavenPom.scm(mavenPomScm -> {
163-
mavenPomScm.getConnection().set(scmConnection);
164-
mavenPomScm.getDeveloperConnection().set(scmDeveloperConnection);
165-
mavenPomScm.getUrl().set(scmUrl);
172+
mavenPomScm.getConnection().set(scmConnectionProvider);
173+
mavenPomScm.getDeveloperConnection().set(scmDeveloperConnectionProvider);
174+
mavenPomScm.getUrl().set(scmUrlProvider);
166175
});
167176

168177
// developers

0 commit comments

Comments
 (0)