Browse Source

Merge branch '1.1.x'

pull/2391/head
Andy Wilkinson 11 years ago
parent
commit
2665ef0692
  1. 13
      spring-boot-integration-tests/src/test/java/org/springframework/boot/gradle/MultiProjectRepackagingTests.java
  2. 22
      spring-boot-integration-tests/src/test/resources/multi-project-runtime-project-dependency/build.gradle
  3. 1
      spring-boot-integration-tests/src/test/resources/multi-project-runtime-project-dependency/settings.gradle
  4. 19
      spring-boot-tools/spring-boot-gradle-plugin/src/main/groovy/org/springframework/boot/gradle/repackage/RepackagePluginFeatures.java

13
spring-boot-integration-tests/src/test/java/org/springframework/boot/gradle/MultiProjectRepackagingTests.java

@ -63,4 +63,17 @@ public class MultiProjectRepackagingTests { @@ -63,4 +63,17 @@ public class MultiProjectRepackagingTests {
assertThat(jarFile.getEntry("lib/foo.jar"), notNullValue());
jarFile.close();
}
@Test
public void repackageWithRuntimeProjectDependency() throws Exception {
ProjectConnection project = new ProjectCreator()
.createProject("multi-project-runtime-project-dependency");
project.newBuild().forTasks("clean", "build")
.withArguments("-PbootVersion=" + BOOT_VERSION).run();
File buildLibs = new File(
"target/multi-project-runtime-project-dependency/projectA/build/libs");
JarFile jarFile = new JarFile(new File(buildLibs, "projectA.jar"));
assertThat(jarFile.getEntry("lib/projectB.jar"), notNullValue());
jarFile.close();
}
}

22
spring-boot-integration-tests/src/test/resources/multi-project-runtime-project-dependency/build.gradle

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
buildscript {
repositories {
mavenLocal()
}
dependencies {
classpath "org.springframework.boot:spring-boot-gradle-plugin:${project.bootVersion}"
}
}
project(':projectA') {
apply plugin: 'spring-boot'
dependencies {
runtime project(':projectB')
}
bootRepackage {
mainClass 'com.foo.Bar'
}
}
project(':projectB') {
apply plugin: 'java'
}

1
spring-boot-integration-tests/src/test/resources/multi-project-runtime-project-dependency/settings.gradle

@ -0,0 +1 @@ @@ -0,0 +1 @@
include 'projectA', 'projectB'

19
spring-boot-tools/spring-boot-gradle-plugin/src/main/groovy/org/springframework/boot/gradle/repackage/RepackagePluginFeatures.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2012-2014 the original author or authors.
* Copyright 2012-2015 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.
@ -22,9 +22,12 @@ import java.io.IOException; @@ -22,9 +22,12 @@ import java.io.IOException;
import org.gradle.api.Action;
import org.gradle.api.Project;
import org.gradle.api.Task;
import org.gradle.api.artifacts.Configuration;
import org.gradle.api.artifacts.Dependency;
import org.gradle.api.logging.Logger;
import org.gradle.api.plugins.BasePlugin;
import org.gradle.api.plugins.JavaPlugin;
import org.gradle.api.tasks.TaskDependency;
import org.gradle.api.tasks.bundling.Jar;
import org.springframework.boot.gradle.PluginFeatures;
import org.springframework.boot.gradle.SpringBootPluginExtension;
@ -37,6 +40,7 @@ import org.springframework.util.StringUtils; @@ -37,6 +40,7 @@ import org.springframework.util.StringUtils;
*
* @author Phillip Webb
* @author Dave Syer
* @author Andy Wilkinson
*/
public class RepackagePluginFeatures implements PluginFeatures {
@ -55,9 +59,14 @@ public class RepackagePluginFeatures implements PluginFeatures { @@ -55,9 +59,14 @@ public class RepackagePluginFeatures implements PluginFeatures {
+ "archives so that they can be executed from the command "
+ "line using 'java -jar'");
task.setGroup(BasePlugin.BUILD_GROUP);
task.dependsOn(project.getConfigurations()
.getByName(Dependency.ARCHIVES_CONFIGURATION).getAllArtifacts()
.getBuildDependencies());
Configuration runtimeConfiguration = project.getConfigurations().getByName(
JavaPlugin.RUNTIME_CONFIGURATION_NAME);
TaskDependency runtimeProjectDependencyJarTasks = runtimeConfiguration
.getTaskDependencyFromProjectDependency(true, JavaPlugin.JAR_TASK_NAME);
task.dependsOn(
project.getConfigurations().getByName(Dependency.ARCHIVES_CONFIGURATION)
.getAllArtifacts().getBuildDependencies(),
runtimeProjectDependencyJarTasks);
registerOutput(project, task);
ensureTaskRunsOnAssembly(project, task);
}
@ -121,7 +130,7 @@ public class RepackagePluginFeatures implements PluginFeatures { @@ -121,7 +130,7 @@ public class RepackagePluginFeatures implements PluginFeatures {
private void setupInputOutputs(Jar jarTask, String classifier) {
Logger logger = this.project.getLogger();
logger.debug("Using classifier: " + classifier + " for task "
+ task.getName());
+ this.task.getName());
File inputFile = jarTask.getArchivePath();
String outputName = inputFile.getName();
outputName = StringUtils.stripFilenameExtension(outputName) + "-"

Loading…
Cancel
Save