Merge branch '2.0.x'
This commit is contained in:
commit
7790876575
|
|
@ -93,11 +93,26 @@ public interface BootArchive extends Task {
|
|||
|
||||
/**
|
||||
* Adds files to the classpath to include in the archive. The given {@code classpath}
|
||||
* are evaluated as per {@link Project#files(Object...)}.
|
||||
* is evaluated as per {@link Project#files(Object...)}.
|
||||
* @param classpath the additions to the classpath
|
||||
*/
|
||||
void classpath(Object... classpath);
|
||||
|
||||
/**
|
||||
* Sets the classpath to include in the archive. The given {@code classpath} is
|
||||
* evaluated as per {@link Project#files(Object...)}.
|
||||
* @param classpath the classpath
|
||||
* @since 2.0.7
|
||||
*/
|
||||
void setClasspath(Object classpath);
|
||||
|
||||
/**
|
||||
* Sets the classpath to include in the archive.
|
||||
* @param classpath the classpath
|
||||
* @since 2.0.7
|
||||
*/
|
||||
void setClasspath(FileCollection classpath);
|
||||
|
||||
/**
|
||||
* Returns {@code true} if the Devtools jar should be excluded, otherwise
|
||||
* {@code false}.
|
||||
|
|
|
|||
|
|
@ -129,6 +129,14 @@ public class BootJar extends Jar implements BootArchive {
|
|||
classpath);
|
||||
}
|
||||
|
||||
public void setClasspath(Object classpath) {
|
||||
this.classpath = getProject().files(classpath);
|
||||
}
|
||||
|
||||
public void setClasspath(FileCollection classpath) {
|
||||
this.classpath = getProject().files(classpath);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isExcludeDevtools() {
|
||||
return this.support.isExcludeDevtools();
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ public class BootWar extends War implements BootArchive {
|
|||
|
||||
/**
|
||||
* Adds files to the provided classpath to include in the {@code WEB-INF/lib-provided}
|
||||
* directory of the war. The given {@code classpath} are evaluated as per
|
||||
* directory of the war. The given {@code classpath} is evaluated as per
|
||||
* {@link Project#files(Object...)}.
|
||||
* @param classpath the additions to the classpath
|
||||
*/
|
||||
|
|
@ -131,6 +131,27 @@ public class BootWar extends War implements BootArchive {
|
|||
classpath);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the provided classpath to include in the {@code WEB-INF/lib-provided}
|
||||
* directory of the war.
|
||||
* @param classpath the classpath
|
||||
* @since 2.0.7
|
||||
*/
|
||||
public void setProvidedClasspath(FileCollection classpath) {
|
||||
this.providedClasspath = getProject().files(classpath);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the provided classpath to include in the {@code WEB-INF/lib-provided}
|
||||
* directory of the war. The given {@code classpath} is evaluated as per
|
||||
* {@link Project#files(Object...)}.
|
||||
* @param classpath the classpath
|
||||
* @since 2.0.7
|
||||
*/
|
||||
public void setProvidedClasspath(Object classpath) {
|
||||
this.providedClasspath = getProject().files(classpath);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isExcludeDevtools() {
|
||||
return this.support.isExcludeDevtools();
|
||||
|
|
|
|||
|
|
@ -133,6 +133,31 @@ public abstract class AbstractBootArchiveTests<T extends Jar & BootArchive> {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void classpathCanBeSetUsingAFileCollection() throws IOException {
|
||||
this.task.setMainClassName("com.example.Main");
|
||||
this.task.classpath(this.temp.newFile("one.jar"));
|
||||
this.task
|
||||
.setClasspath(this.task.getProject().files(this.temp.newFile("two.jar")));
|
||||
this.task.execute();
|
||||
try (JarFile jarFile = new JarFile(this.task.getArchivePath())) {
|
||||
assertThat(jarFile.getEntry(this.libPath + "/one.jar")).isNull();
|
||||
assertThat(jarFile.getEntry(this.libPath + "/two.jar")).isNotNull();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void classpathCanBeSetUsingAnObject() throws IOException {
|
||||
this.task.setMainClassName("com.example.Main");
|
||||
this.task.classpath(this.temp.newFile("one.jar"));
|
||||
this.task.setClasspath(this.temp.newFile("two.jar"));
|
||||
this.task.execute();
|
||||
try (JarFile jarFile = new JarFile(this.task.getArchivePath())) {
|
||||
assertThat(jarFile.getEntry(this.libPath + "/one.jar")).isNull();
|
||||
assertThat(jarFile.getEntry(this.libPath + "/two.jar")).isNotNull();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void loaderIsWrittenToTheRootOfTheJar() throws IOException {
|
||||
this.task.setMainClassName("com.example.Main");
|
||||
|
|
|
|||
|
|
@ -48,6 +48,31 @@ public class BootWarTests extends AbstractBootArchiveTests<BootWar> {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void providedClasspathCanBeSetUsingAFileCollection() throws IOException {
|
||||
getTask().setMainClassName("com.example.Main");
|
||||
getTask().providedClasspath(this.temp.newFile("one.jar"));
|
||||
getTask().setProvidedClasspath(
|
||||
getTask().getProject().files(this.temp.newFile("two.jar")));
|
||||
getTask().execute();
|
||||
try (JarFile jarFile = new JarFile(getTask().getArchivePath())) {
|
||||
assertThat(jarFile.getEntry("WEB-INF/lib-provided/one.jar")).isNull();
|
||||
assertThat(jarFile.getEntry("WEB-INF/lib-provided/two.jar")).isNotNull();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void providedClasspathCanBeSetUsingAnObject() throws IOException {
|
||||
getTask().setMainClassName("com.example.Main");
|
||||
getTask().providedClasspath(this.temp.newFile("one.jar"));
|
||||
getTask().setProvidedClasspath(this.temp.newFile("two.jar"));
|
||||
getTask().execute();
|
||||
try (JarFile jarFile = new JarFile(getTask().getArchivePath())) {
|
||||
assertThat(jarFile.getEntry("WEB-INF/lib-provided/one.jar")).isNull();
|
||||
assertThat(jarFile.getEntry("WEB-INF/lib-provided/two.jar")).isNotNull();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void devtoolsJarIsExcludedByDefaultWhenItsOnTheProvidedClasspath()
|
||||
throws IOException {
|
||||
|
|
|
|||
Loading…
Reference in New Issue