Skip dependency exclusions if groupId is null

Fixes gh-1133
pull/1165/head
Dave Syer 11 years ago
parent 078db8cb74
commit 1b97e8d921

@ -0,0 +1,61 @@
/*
* Copyright 2012-2014 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
*
* http://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 org.springframework.boot.gradle;
import java.io.File;
import org.gradle.tooling.ProjectConnection;
import org.junit.Before;
import org.junit.Test;
import org.springframework.boot.dependency.tools.ManagedDependencies;
import org.springframework.util.FileCopyUtils;
import org.springframework.util.FileSystemUtils;
/**
* Tests for using the Gradle plugin's support for flat directory repos
*
* @author Dave Syer
*/
public class FlatdirTests {
private ProjectConnection project;
private File libs = new File("target/flatdir/lib");
private static final String BOOT_VERSION = ManagedDependencies.get().find(
"spring-boot").getVersion();
@Before
public void init() {
if (libs.exists()) {
FileSystemUtils.deleteRecursively(libs);
}
}
@Test
public void flatdir() throws Exception {
project = new ProjectCreator().createProject("flatdir");
if (!libs.exists()) {
libs.mkdirs();
}
FileCopyUtils.copy(new File("src/test/resources/foo.jar"),
new File(libs, "foo-1.0.0.jar"));
project.newBuild().forTasks("build").withArguments(
"-PbootVersion=" + BOOT_VERSION, "--stacktrace").run();
}
}

@ -0,0 +1,29 @@
buildscript {
repositories {
mavenLocal()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${project.bootVersion}")
}
}
apply plugin: 'spring-boot'
group = 'flatdir'
version = '0.0.0'
run {
main = 'Foo'
}
jar {
baseName = 'flatdir'
}
repositories {
flatDir( dirs:'lib' )
}
dependencies {
compile ':foo:1.0.0'
}

@ -49,10 +49,12 @@ public class ApplyExcludeRules implements Action<Configuration> {
if (!VersionManagedDependencies.CONFIGURATION.equals(configuration.getName())) {
configuration.getIncoming().beforeResolve(
new Action<ResolvableDependencies>() {
@Override
public void execute(ResolvableDependencies resolvableDependencies) {
resolvableDependencies.getDependencies().all(
new Action<Dependency>() {
@Override
public void execute(Dependency dependency) {
applyExcludeRules(dependency);
@ -70,20 +72,21 @@ public class ApplyExcludeRules implements Action<Configuration> {
}
private void applyExcludeRules(ModuleDependency dependency) {
ManagedDependencies managedDependencies = versionManagedDependencies
.getManagedDependencies();
org.springframework.boot.dependency.tools.Dependency managedDependency = managedDependencies
.find(dependency.getGroup(), dependency.getName());
if (managedDependency != null) {
for (Exclusion exclusion : managedDependency.getExclusions()) {
addExcludeRule(dependency, exclusion);
ManagedDependencies managedDependencies = versionManagedDependencies.getManagedDependencies();
// flat directory repositories do not have groups
if (dependency.getGroup() != null) {
org.springframework.boot.dependency.tools.Dependency managedDependency = managedDependencies.find(
dependency.getGroup(), dependency.getName());
if (managedDependency != null) {
for (Exclusion exclusion : managedDependency.getExclusions()) {
addExcludeRule(dependency, exclusion);
}
addImplicitExcludeRules(dependency);
return;
}
addImplicitExcludeRules(dependency);
}
else {
logger.debug("No exclusions rules applied for non-managed dependency "
+ dependency);
}
logger.debug("No exclusions rules applied for non-managed dependency "
+ dependency);
}
private void addExcludeRule(ModuleDependency dependency, Exclusion exclusion) {
@ -106,8 +109,8 @@ public class ApplyExcludeRules implements Action<Configuration> {
private boolean isStarter(ModuleDependency dependency) {
return (dependency.getGroup() != null
&& dependency.getGroup().equals("org.springframework.boot") && dependency
.getName().startsWith("spring-boot-starter"));
&& dependency.getGroup().equals("org.springframework.boot") && dependency.getName().startsWith(
"spring-boot-starter"));
}
}

Loading…
Cancel
Save