68 lines
2.4 KiB
Groovy
68 lines
2.4 KiB
Groovy
|
|
/*
|
||
|
|
* Copyright 2016-2019 the original author or authors.
|
||
|
|
*
|
||
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
||
|
|
* use this file except in compliance with the License. You may obtain a copy of
|
||
|
|
* the License at
|
||
|
|
*
|
||
|
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||
|
|
*
|
||
|
|
* Unless required by applicable law or agreed to in writing, software
|
||
|
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||
|
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||
|
|
* License for the specific language governing permissions and limitations under
|
||
|
|
* the License.
|
||
|
|
*/
|
||
|
|
|
||
|
|
package io.spring.gradle.convention
|
||
|
|
|
||
|
|
import io.spring.nohttp.gradle.NoHttpPlugin
|
||
|
|
import org.gradle.api.Plugin
|
||
|
|
import org.gradle.api.Project
|
||
|
|
import org.gradle.api.plugins.BasePlugin
|
||
|
|
import org.gradle.api.plugins.PluginManager
|
||
|
|
|
||
|
|
class RootProjectPlugin implements Plugin<Project> {
|
||
|
|
|
||
|
|
@Override
|
||
|
|
void apply(Project project) {
|
||
|
|
PluginManager pluginManager = project.getPluginManager()
|
||
|
|
pluginManager.apply(BasePlugin)
|
||
|
|
pluginManager.apply(SchemaPlugin)
|
||
|
|
pluginManager.apply(NoHttpPlugin)
|
||
|
|
pluginManager.apply("org.sonarqube")
|
||
|
|
|
||
|
|
project.repositories.mavenCentral()
|
||
|
|
|
||
|
|
String projectName = Utils.getProjectName(project)
|
||
|
|
project.sonarqube {
|
||
|
|
properties {
|
||
|
|
property "sonar.java.coveragePlugin", "jacoco"
|
||
|
|
property "sonar.projectName", projectName
|
||
|
|
property "sonar.jacoco.reportPath", "${project.buildDir.name}/jacoco.exec"
|
||
|
|
property "sonar.links.homepage", "https://spring.io/${projectName}"
|
||
|
|
property "sonar.links.ci", "https://jenkins.spring.io/job/${projectName}/"
|
||
|
|
property "sonar.links.issue", "https://github.com/spring-projects/${projectName}/issues"
|
||
|
|
property "sonar.links.scm", "https://github.com/spring-projects/${projectName}"
|
||
|
|
property "sonar.links.scm_dev", "https://github.com/spring-projects/${projectName}.git"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
def finalizeDeployArtifacts = project.task("finalizeDeployArtifacts")
|
||
|
|
if (Utils.isRelease(project) && project.hasProperty("ossrhUsername")) {
|
||
|
|
project.ext.nexusUsername = project.ossrhUsername
|
||
|
|
project.ext.nexusPassword = project.ossrhPassword
|
||
|
|
project.getPluginManager().apply("io.codearte.nexus-staging")
|
||
|
|
finalizeDeployArtifacts.dependsOn project.tasks.closeAndReleaseRepository
|
||
|
|
project.nexusStaging {
|
||
|
|
packageGroup = 'org.springframework'
|
||
|
|
|
||
|
|
// try for 5 minutes total
|
||
|
|
numberOfRetries = 60 // default is 20
|
||
|
|
delayBetweenRetriesInMillis = 5000 // default is 2000
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|