Commit 2665ef06 authored by Andy Wilkinson's avatar Andy Wilkinson

Merge branch '1.1.x'

parents ca69156a 93b2a17f
...@@ -63,4 +63,17 @@ public class MultiProjectRepackagingTests { ...@@ -63,4 +63,17 @@ public class MultiProjectRepackagingTests {
assertThat(jarFile.getEntry("lib/foo.jar"), notNullValue()); assertThat(jarFile.getEntry("lib/foo.jar"), notNullValue());
jarFile.close(); 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();
}
} }
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'
}
\ No newline at end of file
/* /*
* 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"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with 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.Action;
import org.gradle.api.Project; import org.gradle.api.Project;
import org.gradle.api.Task; import org.gradle.api.Task;
import org.gradle.api.artifacts.Configuration;
import org.gradle.api.artifacts.Dependency; import org.gradle.api.artifacts.Dependency;
import org.gradle.api.logging.Logger; import org.gradle.api.logging.Logger;
import org.gradle.api.plugins.BasePlugin; 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.gradle.api.tasks.bundling.Jar;
import org.springframework.boot.gradle.PluginFeatures; import org.springframework.boot.gradle.PluginFeatures;
import org.springframework.boot.gradle.SpringBootPluginExtension; 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 Phillip Webb
* @author Dave Syer * @author Dave Syer
* @author Andy Wilkinson
*/ */
public class RepackagePluginFeatures implements PluginFeatures { 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 " + "archives so that they can be executed from the command "
+ "line using 'java -jar'"); + "line using 'java -jar'");
task.setGroup(BasePlugin.BUILD_GROUP); task.setGroup(BasePlugin.BUILD_GROUP);
task.dependsOn(project.getConfigurations() Configuration runtimeConfiguration = project.getConfigurations().getByName(
.getByName(Dependency.ARCHIVES_CONFIGURATION).getAllArtifacts() JavaPlugin.RUNTIME_CONFIGURATION_NAME);
.getBuildDependencies()); TaskDependency runtimeProjectDependencyJarTasks = runtimeConfiguration
.getTaskDependencyFromProjectDependency(true, JavaPlugin.JAR_TASK_NAME);
task.dependsOn(
project.getConfigurations().getByName(Dependency.ARCHIVES_CONFIGURATION)
.getAllArtifacts().getBuildDependencies(),
runtimeProjectDependencyJarTasks);
registerOutput(project, task); registerOutput(project, task);
ensureTaskRunsOnAssembly(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) { private void setupInputOutputs(Jar jarTask, String classifier) {
Logger logger = this.project.getLogger(); Logger logger = this.project.getLogger();
logger.debug("Using classifier: " + classifier + " for task " logger.debug("Using classifier: " + classifier + " for task "
+ task.getName()); + this.task.getName());
File inputFile = jarTask.getArchivePath(); File inputFile = jarTask.getArchivePath();
String outputName = inputFile.getName(); String outputName = inputFile.getName();
outputName = StringUtils.stripFilenameExtension(outputName) + "-" outputName = StringUtils.stripFilenameExtension(outputName) + "-"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment