Allow meta-data driven version overrides in Gradle

Add a `versionManagement` gradle configuration which can be used to
provide alternative version meta-data. Primarily added so that the
Spring IO platform can provide version overrides without causing a
cyclic build dependency.

Fixes gh-750
This commit is contained in:
Phillip Webb
2014-05-06 16:31:49 +01:00
parent 38fb8e6874
commit 506c0f50b9
23 changed files with 760 additions and 211 deletions

View File

@@ -18,6 +18,7 @@ package org.springframework.boot.cli.compiler.dependencies;
import org.springframework.boot.dependency.tools.Dependency;
import org.springframework.boot.dependency.tools.ManagedDependencies;
import org.springframework.boot.dependency.tools.VersionManagedDependencies;
/**
* {@link ArtifactCoordinatesResolver} backed by {@link ManagedDependencies}.
@@ -30,7 +31,7 @@ public class ManagedDependenciesArtifactCoordinatesResolver implements
private final ManagedDependencies dependencies;
public ManagedDependenciesArtifactCoordinatesResolver() {
this(ManagedDependencies.get());
this(new VersionManagedDependencies());
}
ManagedDependenciesArtifactCoordinatesResolver(ManagedDependencies dependencies) {
@@ -53,7 +54,7 @@ public class ManagedDependenciesArtifactCoordinatesResolver implements
if (artifactId != null) {
if (artifactId.startsWith("spring-boot")) {
return new Dependency("org.springframework.boot", artifactId,
this.dependencies.getVersion());
this.dependencies.getSpringBootVersion());
}
return this.dependencies.find(artifactId);
}

View File

@@ -24,10 +24,12 @@ import org.eclipse.aether.artifact.DefaultArtifact;
import org.eclipse.aether.graph.Dependency;
import org.eclipse.aether.util.artifact.JavaScopes;
import org.springframework.boot.dependency.tools.ManagedDependencies;
import org.springframework.boot.dependency.tools.PomManagedDependencies;
import org.springframework.boot.dependency.tools.VersionManagedDependencies;
/**
* Factory to create Maven {@link Dependency} objects from Boot
* {@link ManagedDependencies}.
* {@link PomManagedDependencies}.
*
* @author Phillip Webb
*/
@@ -36,7 +38,7 @@ public class ManagedDependenciesFactory {
private final ManagedDependencies dependencies;
ManagedDependenciesFactory() {
this(ManagedDependencies.get());
this(new VersionManagedDependencies());
}
ManagedDependenciesFactory(ManagedDependencies dependencies) {