Skip to content

Commit eeab7c1

Browse files
committed
Refactor RootProjectPlugin to organize build logic in private methods describing the function applied to the build.
1 parent 87cacad commit eeab7c1

File tree

1 file changed

+47
-26
lines changed

1 file changed

+47
-26
lines changed

buildSrc/src/main/groovy/io/spring/gradle/convention/RootProjectPlugin.groovy

Lines changed: 47 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -38,33 +38,11 @@ class RootProjectPlugin implements Plugin<Project> {
3838
void apply(Project project) {
3939

4040
applyPlugins(project)
41-
42-
project.allprojects {
43-
configurations.all {
44-
resolutionStrategy {
45-
cacheChangingModulesFor 0, 'seconds'
46-
cacheDynamicVersionsFor 0, 'seconds'
47-
}
48-
}
49-
}
50-
51-
// Adds the Maven Central Repository to the list of repositories used by this build to resolve dependencies.
52-
project.repositories.mavenCentral()
53-
41+
configureMavenCentralRepository(project)
42+
configureResolutionStrategy(project)
5443
configureSonarQube(project)
55-
56-
project.tasks.create("dependencyManagementExport", DependencyManagementExportTask)
57-
58-
project.task("releasePublishedArtifacts", { Task releasePublishedArtifacts ->
59-
if (isReleasingToMavenCentral(project)) {
60-
releasePublishedArtifacts.dependsOn project.tasks.closeAndReleaseOssrhStagingRepository
61-
}
62-
})
63-
}
64-
65-
@SuppressWarnings("all")
66-
private boolean isReleasingToMavenCentral(Project project) {
67-
Utils.isRelease(project) && project.hasProperty("ossrhUsername")
44+
createDependencyManagementExportTask(project)
45+
createReleasePublishedArtifactsTask(project)
6846
}
6947

7048
@SuppressWarnings("all")
@@ -79,6 +57,30 @@ class RootProjectPlugin implements Plugin<Project> {
7957
pluginManager.apply("org.sonarqube")
8058
}
8159

60+
/**
61+
* Adds the Maven Central Repository to the list of repositories used by this Gradle {@link Project} build
62+
* to resolve dependencies.
63+
*
64+
* @param project Gradle {@link Project}.
65+
* @see org.gradle.api.Project
66+
*/
67+
@SuppressWarnings("all")
68+
private void configureMavenCentralRepository(Project project) {
69+
project.repositories.mavenCentral()
70+
}
71+
72+
private void configureResolutionStrategy(Project project) {
73+
74+
project.allprojects {
75+
configurations.all {
76+
resolutionStrategy {
77+
cacheChangingModulesFor 0, 'seconds'
78+
cacheDynamicVersionsFor 0, 'seconds'
79+
}
80+
}
81+
}
82+
}
83+
8284
private void configureSonarQube(Project project) {
8385

8486
String projectName = Utils.getProjectName(project)
@@ -96,4 +98,23 @@ class RootProjectPlugin implements Plugin<Project> {
9698
}
9799
}
98100
}
101+
102+
@SuppressWarnings("all")
103+
private void createDependencyManagementExportTask(Project project) {
104+
project.tasks.create("dependencyManagementExport", DependencyManagementExportTask)
105+
}
106+
107+
private void createReleasePublishedArtifactsTask(Project project) {
108+
109+
project.task("releasePublishedArtifacts", { Task releasePublishedArtifacts ->
110+
if (isReleasingToMavenCentral(project)) {
111+
releasePublishedArtifacts.dependsOn project.tasks.closeAndReleaseOssrhStagingRepository
112+
}
113+
})
114+
}
115+
116+
@SuppressWarnings("all")
117+
private boolean isReleasingToMavenCentral(Project project) {
118+
Utils.isRelease(project) && project.hasProperty("ossrhUsername")
119+
}
99120
}

0 commit comments

Comments
 (0)