parent
0f0e8eded4
commit
de1b3e9d30
|
@ -24,8 +24,6 @@ ext.snapshotBuild = version.contains("SNAPSHOT")
|
||||||
ext.releaseBuild = version.contains("SNAPSHOT")
|
ext.releaseBuild = version.contains("SNAPSHOT")
|
||||||
ext.milestoneBuild = !(snapshotBuild || releaseBuild)
|
ext.milestoneBuild = !(snapshotBuild || releaseBuild)
|
||||||
|
|
||||||
dependencyManagementExport.projects = subprojects.findAll { !it.name.contains('-boot') }
|
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,10 @@ gradlePlugin {
|
||||||
id = "locks"
|
id = "locks"
|
||||||
implementationClass = "lock.GlobalLockPlugin"
|
implementationClass = "lock.GlobalLockPlugin"
|
||||||
}
|
}
|
||||||
|
managementConfiguration {
|
||||||
|
id = "io.spring.convention.management-configuration"
|
||||||
|
implementationClass = "io.spring.gradle.convention.ManagementConfigurationPlugin"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +41,6 @@ dependencies {
|
||||||
|
|
||||||
implementation 'com.github.ben-manes:gradle-versions-plugin:0.25.0'
|
implementation 'com.github.ben-manes:gradle-versions-plugin:0.25.0'
|
||||||
implementation 'io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.21.1'
|
implementation 'io.codearte.gradle.nexus:gradle-nexus-staging-plugin:0.21.1'
|
||||||
implementation 'io.spring.gradle:dependency-management-plugin:1.0.9.RELEASE'
|
|
||||||
implementation 'io.spring.gradle:docbook-reference-plugin:0.3.1'
|
implementation 'io.spring.gradle:docbook-reference-plugin:0.3.1'
|
||||||
implementation 'io.spring.gradle:propdeps-plugin:0.0.10.RELEASE'
|
implementation 'io.spring.gradle:propdeps-plugin:0.0.10.RELEASE'
|
||||||
implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.15'
|
implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.15'
|
||||||
|
|
|
@ -56,7 +56,6 @@ public abstract class AbstractSpringJavaPlugin implements Plugin<Project> {
|
||||||
}
|
}
|
||||||
pluginManager.apply("io.spring.convention.tests-configuration");
|
pluginManager.apply("io.spring.convention.tests-configuration");
|
||||||
pluginManager.apply("io.spring.convention.integration-test");
|
pluginManager.apply("io.spring.convention.integration-test");
|
||||||
pluginManager.apply("io.spring.convention.springdependencymangement");
|
|
||||||
pluginManager.apply("io.spring.convention.dependency-set");
|
pluginManager.apply("io.spring.convention.dependency-set");
|
||||||
pluginManager.apply("io.spring.convention.javadoc-options");
|
pluginManager.apply("io.spring.convention.javadoc-options");
|
||||||
pluginManager.apply("io.spring.convention.checkstyle");
|
pluginManager.apply("io.spring.convention.checkstyle");
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
package io.spring.gradle.convention
|
|
||||||
|
|
||||||
import org.gradle.api.Project
|
|
||||||
import org.gradle.api.artifacts.component.ModuleComponentSelector
|
|
||||||
import org.gradle.api.tasks.Input
|
|
||||||
import org.gradle.api.tasks.Internal;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Properties;
|
|
||||||
|
|
||||||
import org.gradle.api.DefaultTask;
|
|
||||||
import org.gradle.api.artifacts.Configuration;
|
|
||||||
import org.gradle.api.tasks.TaskAction;
|
|
||||||
|
|
||||||
import io.spring.gradle.dependencymanagement.dsl.DependencyManagementExtension;
|
|
||||||
|
|
||||||
public class DependencyManagementExportTask extends DefaultTask {
|
|
||||||
@Internal
|
|
||||||
def projects;
|
|
||||||
|
|
||||||
@Input
|
|
||||||
String getProjectNames() {
|
|
||||||
return projects*.name
|
|
||||||
}
|
|
||||||
|
|
||||||
@TaskAction
|
|
||||||
public void dependencyManagementExport() throws IOException {
|
|
||||||
def projects = this.projects ?: project.subprojects + project
|
|
||||||
def configurations = projects*.configurations*.findAll { ['testRuntime','integrationTestRuntime','grettyRunnerTomcat8','ajtools'].contains(it.name) }
|
|
||||||
def dependencyResults = configurations*.incoming*.resolutionResult*.allDependencies.flatten()
|
|
||||||
def moduleVersionVersions = dependencyResults.findAll { r -> r.requested instanceof ModuleComponentSelector }.collect { r-> r.selected.moduleVersion }
|
|
||||||
|
|
||||||
def projectDependencies = projects.collect { p-> "${p.group}:${p.name}:${p.version}".toString() } as Set
|
|
||||||
def dependencies = moduleVersionVersions.collect { d ->
|
|
||||||
"${d.group}:${d.name}:${d.version}".toString()
|
|
||||||
}.sort() as Set
|
|
||||||
|
|
||||||
println ''
|
|
||||||
println ''
|
|
||||||
println 'dependencyManagement {'
|
|
||||||
println '\tdependencies {'
|
|
||||||
dependencies.findAll { d-> !projectDependencies.contains(d)}.each {
|
|
||||||
println "\t\tdependency '$it'"
|
|
||||||
}
|
|
||||||
println '\t}'
|
|
||||||
println '}'
|
|
||||||
println ''
|
|
||||||
println ''
|
|
||||||
println 'TIP Use this to find duplicates:\n$ sort gradle/dependency-management.gradle| uniq -c | grep -v \'^\\s*1\''
|
|
||||||
println ''
|
|
||||||
println ''
|
|
||||||
}
|
|
||||||
|
|
||||||
void setOutputFile(File file) throws IOException {
|
|
||||||
this.output = new FileOutputStream(file);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -57,8 +57,6 @@ class RootProjectPlugin implements Plugin<Project> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
project.tasks.create("dependencyManagementExport", DependencyManagementExportTask)
|
|
||||||
|
|
||||||
def finalizeDeployArtifacts = project.task("finalizeDeployArtifacts")
|
def finalizeDeployArtifacts = project.task("finalizeDeployArtifacts")
|
||||||
if (Utils.isRelease(project) && project.hasProperty("ossrhUsername")) {
|
if (Utils.isRelease(project) && project.hasProperty("ossrhUsername")) {
|
||||||
project.ext.nexusUsername = project.ossrhUsername
|
project.ext.nexusUsername = project.ossrhUsername
|
||||||
|
|
|
@ -1,54 +0,0 @@
|
||||||
/*
|
|
||||||
* 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.gradle.dependencymanagement.DependencyManagementPlugin
|
|
||||||
import org.gradle.api.Plugin
|
|
||||||
import org.gradle.api.Project
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds and configures {@link DependencyManagementPlugin}.
|
|
||||||
* <p>
|
|
||||||
* Additionally, if 'gradle/dependency-management.gradle' file is present it will be
|
|
||||||
* automatically applied file for configuring the dependencies.
|
|
||||||
*/
|
|
||||||
class SpringDependencyManagementConventionPlugin implements Plugin<Project> {
|
|
||||||
|
|
||||||
static final String DEPENDENCY_MANAGEMENT_RESOURCE = "gradle/dependency-management.gradle"
|
|
||||||
|
|
||||||
@Override
|
|
||||||
void apply(Project project) {
|
|
||||||
project.getPluginManager().apply(ManagementConfigurationPlugin)
|
|
||||||
project.getPluginManager().apply(DependencyManagementPlugin)
|
|
||||||
project.dependencyManagement {
|
|
||||||
resolutionStrategy {
|
|
||||||
cacheChangingModulesFor 0, "seconds"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
File rootDir = project.rootDir
|
|
||||||
List<File> dependencyManagementFiles = [project.rootProject.file(DEPENDENCY_MANAGEMENT_RESOURCE)]
|
|
||||||
for (File dir = project.projectDir; dir != rootDir; dir = dir.parentFile) {
|
|
||||||
dependencyManagementFiles.add(new File(dir, DEPENDENCY_MANAGEMENT_RESOURCE))
|
|
||||||
}
|
|
||||||
dependencyManagementFiles.each { f ->
|
|
||||||
if (f.exists()) {
|
|
||||||
project.apply from: f.absolutePath
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,9 +1,5 @@
|
||||||
package io.spring.gradle.convention
|
package io.spring.gradle.convention
|
||||||
|
|
||||||
import io.spring.gradle.dependencymanagement.DependencyManagementPlugin
|
|
||||||
import io.spring.gradle.dependencymanagement.dsl.DependencyManagementExtension
|
|
||||||
import io.spring.gradle.dependencymanagement.dsl.GeneratedPomCustomizationHandler
|
|
||||||
import org.gradle.api.Action
|
|
||||||
import org.gradle.api.Plugin
|
import org.gradle.api.Plugin
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.api.XmlProvider
|
import org.gradle.api.XmlProvider
|
||||||
|
@ -57,9 +53,7 @@ public class SpringMavenPlugin implements Plugin<Project> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
project.plugins.withType(DependencyManagementPlugin) {
|
inlineDependencyManagement(project);
|
||||||
inlineDependencyManagement(project);
|
|
||||||
}
|
|
||||||
|
|
||||||
def hasSigningKey = project.hasProperty("signing.keyId") || project.findProperty("signingKey")
|
def hasSigningKey = project.hasProperty("signing.keyId") || project.findProperty("signingKey")
|
||||||
if(hasSigningKey && Utils.isRelease(project)) {
|
if(hasSigningKey && Utils.isRelease(project)) {
|
||||||
|
@ -70,9 +64,6 @@ public class SpringMavenPlugin implements Plugin<Project> {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void inlineDependencyManagement(Project project) {
|
private void inlineDependencyManagement(Project project) {
|
||||||
final DependencyManagementExtension dependencyManagement = project.getExtensions().findByType(DependencyManagementExtension.class);
|
|
||||||
dependencyManagement.generatedPomCustomization( { handler -> handler.setEnabled(false) });
|
|
||||||
|
|
||||||
project.install {
|
project.install {
|
||||||
repositories.mavenInstaller {
|
repositories.mavenInstaller {
|
||||||
configurePomForInlineDependencies(project, pom)
|
configurePomForInlineDependencies(project, pom)
|
||||||
|
@ -89,7 +80,7 @@ public class SpringMavenPlugin implements Plugin<Project> {
|
||||||
pom.withXml { XmlProvider xml ->
|
pom.withXml { XmlProvider xml ->
|
||||||
project.plugins.withType(JavaBasePlugin) {
|
project.plugins.withType(JavaBasePlugin) {
|
||||||
def dependencies = xml.asNode()?.dependencies?.dependency
|
def dependencies = xml.asNode()?.dependencies?.dependency
|
||||||
def configuredDependencies = project.configurations.findAll{ it.canBeResolved }*.incoming*.resolutionResult*.allDependencies.flatten()
|
def configuredDependencies = project.configurations.findAll{ it.canBeResolved && it.canBeConsumed }*.incoming*.resolutionResult*.allDependencies.flatten()
|
||||||
dependencies?.each { Node dep ->
|
dependencies?.each { Node dep ->
|
||||||
def group = dep.groupId.text()
|
def group = dep.groupId.text()
|
||||||
def name = dep.artifactId.text()
|
def name = dep.artifactId.text()
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
implementation-class=io.spring.gradle.convention.SpringDependencyManagementConventionPlugin
|
|
|
@ -1,3 +0,0 @@
|
||||||
dependencies {
|
|
||||||
management platform('io.spring.platform:platform-bom:Brussels-RELEASE')
|
|
||||||
}
|
|
|
@ -1,6 +1,7 @@
|
||||||
apply plugin: 'io.spring.convention.spring-module'
|
apply plugin: 'io.spring.convention.spring-module'
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
management platform('io.spring.platform:platform-bom:Brussels-RELEASE')
|
||||||
compile 'org.springframework:spring-web'
|
compile 'org.springframework:spring-web'
|
||||||
compile 'org.springframework:spring-core'
|
compile 'org.springframework:spring-core'
|
||||||
testCompile 'junit:junit'
|
testCompile 'junit:junit'
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
apply plugin: 'io.spring.convention.spring-module'
|
apply plugin: 'io.spring.convention.spring-module'
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
management platform('io.spring.platform:platform-bom:Brussels-RELEASE')
|
||||||
optional 'ch.qos.logback:logback-classic'
|
optional 'ch.qos.logback:logback-classic'
|
||||||
testCompile 'junit:junit'
|
testCompile 'junit:junit'
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
apply plugin: 'io.spring.convention.docs'
|
apply plugin: 'io.spring.convention.docs'
|
||||||
apply plugin: 'io.spring.convention.springdependencymangement'
|
apply plugin: 'io.spring.convention.management-configuration'
|
||||||
apply plugin: 'io.spring.convention.dependency-set'
|
apply plugin: 'io.spring.convention.dependency-set'
|
||||||
apply plugin: 'io.spring.convention.repository'
|
apply plugin: 'io.spring.convention.repository'
|
||||||
apply plugin: 'java'
|
apply plugin: 'java'
|
||||||
|
|
|
@ -10,7 +10,7 @@ buildscript {
|
||||||
plugins {
|
plugins {
|
||||||
id 'java-library'
|
id 'java-library'
|
||||||
id 'io.spring.convention.repository'
|
id 'io.spring.convention.repository'
|
||||||
id 'io.spring.convention.springdependencymangement'
|
id 'io.spring.convention.management-configuration'
|
||||||
id 'io.spring.convention.dependency-set'
|
id 'io.spring.convention.dependency-set'
|
||||||
id 'io.spring.convention.checkstyle'
|
id 'io.spring.convention.checkstyle'
|
||||||
id 'io.spring.convention.tests-configuration'
|
id 'io.spring.convention.tests-configuration'
|
||||||
|
|
|
@ -10,7 +10,7 @@ buildscript {
|
||||||
plugins {
|
plugins {
|
||||||
id 'java-library'
|
id 'java-library'
|
||||||
id 'io.spring.convention.repository'
|
id 'io.spring.convention.repository'
|
||||||
id 'io.spring.convention.springdependencymangement'
|
id 'io.spring.convention.management-configuration'
|
||||||
id 'io.spring.convention.dependency-set'
|
id 'io.spring.convention.dependency-set'
|
||||||
id 'io.spring.convention.checkstyle'
|
id 'io.spring.convention.checkstyle'
|
||||||
id 'io.spring.convention.tests-configuration'
|
id 'io.spring.convention.tests-configuration'
|
||||||
|
|
|
@ -10,7 +10,7 @@ buildscript {
|
||||||
plugins {
|
plugins {
|
||||||
id 'java-library'
|
id 'java-library'
|
||||||
id 'io.spring.convention.repository'
|
id 'io.spring.convention.repository'
|
||||||
id 'io.spring.convention.springdependencymangement'
|
id 'io.spring.convention.management-configuration'
|
||||||
id 'io.spring.convention.dependency-set'
|
id 'io.spring.convention.dependency-set'
|
||||||
id 'io.spring.convention.checkstyle'
|
id 'io.spring.convention.checkstyle'
|
||||||
id 'io.spring.convention.tests-configuration'
|
id 'io.spring.convention.tests-configuration'
|
||||||
|
|
Loading…
Reference in New Issue