diff --git a/buildSrc/src/main/groovy/io/spring/gradle/convention/RootProjectPlugin.groovy b/buildSrc/src/main/groovy/io/spring/gradle/convention/RootProjectPlugin.groovy index a80deaa3..a69f5340 100644 --- a/buildSrc/src/main/groovy/io/spring/gradle/convention/RootProjectPlugin.groovy +++ b/buildSrc/src/main/groovy/io/spring/gradle/convention/RootProjectPlugin.groovy @@ -38,33 +38,11 @@ class RootProjectPlugin implements Plugin { void apply(Project project) { applyPlugins(project) - - project.allprojects { - configurations.all { - resolutionStrategy { - cacheChangingModulesFor 0, 'seconds' - cacheDynamicVersionsFor 0, 'seconds' - } - } - } - - // Adds the Maven Central Repository to the list of repositories used by this build to resolve dependencies. - project.repositories.mavenCentral() - + configureMavenCentralRepository(project) + configureResolutionStrategy(project) configureSonarQube(project) - - project.tasks.create("dependencyManagementExport", DependencyManagementExportTask) - - project.task("releasePublishedArtifacts", { Task releasePublishedArtifacts -> - if (isReleasingToMavenCentral(project)) { - releasePublishedArtifacts.dependsOn project.tasks.closeAndReleaseOssrhStagingRepository - } - }) - } - - @SuppressWarnings("all") - private boolean isReleasingToMavenCentral(Project project) { - Utils.isRelease(project) && project.hasProperty("ossrhUsername") + createDependencyManagementExportTask(project) + createReleasePublishedArtifactsTask(project) } @SuppressWarnings("all") @@ -79,6 +57,30 @@ class RootProjectPlugin implements Plugin { pluginManager.apply("org.sonarqube") } + /** + * Adds the Maven Central Repository to the list of repositories used by this Gradle {@link Project} build + * to resolve dependencies. + * + * @param project Gradle {@link Project}. + * @see org.gradle.api.Project + */ + @SuppressWarnings("all") + private void configureMavenCentralRepository(Project project) { + project.repositories.mavenCentral() + } + + private void configureResolutionStrategy(Project project) { + + project.allprojects { + configurations.all { + resolutionStrategy { + cacheChangingModulesFor 0, 'seconds' + cacheDynamicVersionsFor 0, 'seconds' + } + } + } + } + private void configureSonarQube(Project project) { String projectName = Utils.getProjectName(project) @@ -96,4 +98,23 @@ class RootProjectPlugin implements Plugin { } } } + + @SuppressWarnings("all") + private void createDependencyManagementExportTask(Project project) { + project.tasks.create("dependencyManagementExport", DependencyManagementExportTask) + } + + private void createReleasePublishedArtifactsTask(Project project) { + + project.task("releasePublishedArtifacts", { Task releasePublishedArtifacts -> + if (isReleasingToMavenCentral(project)) { + releasePublishedArtifacts.dependsOn project.tasks.closeAndReleaseOssrhStagingRepository + } + }) + } + + @SuppressWarnings("all") + private boolean isReleasingToMavenCentral(Project project) { + Utils.isRelease(project) && project.hasProperty("ossrhUsername") + } }