Replace convention mappings with PropertyState and Provider
Closes gh-9891
This commit is contained in:
parent
6eee9de3c1
commit
6d8c333016
|
|
@ -17,7 +17,6 @@
|
|||
package org.springframework.boot.gradle.dsl;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.concurrent.Callable;
|
||||
|
||||
import org.gradle.api.Action;
|
||||
import org.gradle.api.Project;
|
||||
|
|
@ -87,11 +86,9 @@ public class SpringBootExtension {
|
|||
properties.setArtifact(determineArtifactBaseName());
|
||||
}
|
||||
});
|
||||
bootBuildInfo.getConventionMapping()
|
||||
.map("destinationDir",
|
||||
(Callable<File>) () -> new File(
|
||||
determineMainSourceSetResourcesOutputDir(),
|
||||
"META-INF"));
|
||||
bootBuildInfo.setDestinationDir(this.project
|
||||
.provider(() -> new File(determineMainSourceSetResourcesOutputDir(),
|
||||
"META-INF")));
|
||||
});
|
||||
if (configurer != null) {
|
||||
configurer.execute(bootBuildInfo);
|
||||
|
|
|
|||
|
|
@ -68,10 +68,10 @@ final class ApplicationPluginAction implements PluginApplicationAction {
|
|||
bootStartScripts.setClasspath(configuration.getArtifacts().getFiles());
|
||||
}
|
||||
});
|
||||
bootStartScripts.getConventionMapping().map("outputDir",
|
||||
() -> new File(project.getBuildDir(), "bootScripts"));
|
||||
bootStartScripts.getConventionMapping().map("applicationName",
|
||||
() -> applicationConvention.getApplicationName());
|
||||
bootStartScripts.setOutputDir(
|
||||
project.provider(() -> new File(project.getBuildDir(), "bootScripts")));
|
||||
bootStartScripts.setApplicationName(
|
||||
project.provider(() -> applicationConvention.getApplicationName()));
|
||||
CopySpec binCopySpec = project.copySpec().into("bin").from(bootStartScripts);
|
||||
binCopySpec.setFileMode(0x755);
|
||||
distribution.getContents().with(binCopySpec);
|
||||
|
|
|
|||
|
|
@ -16,7 +16,13 @@
|
|||
|
||||
package org.springframework.boot.gradle.tasks.application;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import org.gradle.api.provider.PropertyState;
|
||||
import org.gradle.api.provider.Provider;
|
||||
import org.gradle.api.tasks.Input;
|
||||
import org.gradle.api.tasks.Optional;
|
||||
import org.gradle.api.tasks.OutputDirectory;
|
||||
import org.gradle.jvm.application.tasks.CreateStartScripts;
|
||||
|
||||
/**
|
||||
|
|
@ -27,10 +33,54 @@ import org.gradle.jvm.application.tasks.CreateStartScripts;
|
|||
*/
|
||||
public class CreateBootStartScripts extends CreateStartScripts {
|
||||
|
||||
private final PropertyState<File> outputDir = getProject().property(File.class);
|
||||
|
||||
private final PropertyState<String> applicationName = getProject()
|
||||
.property(String.class);
|
||||
|
||||
@Override
|
||||
@Optional
|
||||
public String getMainClassName() {
|
||||
return super.getMainClassName();
|
||||
}
|
||||
|
||||
@Input
|
||||
@Override
|
||||
public String getApplicationName() {
|
||||
return this.applicationName.getOrNull();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setApplicationName(String applicationName) {
|
||||
this.applicationName.set(applicationName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the application name to the value from the given
|
||||
* {@code applicationNameProvider}.
|
||||
* @param applicationNameProvider the provider of the application name
|
||||
*/
|
||||
public void setApplicationName(Provider<String> applicationNameProvider) {
|
||||
this.applicationName.set(applicationNameProvider);
|
||||
}
|
||||
|
||||
@Override
|
||||
@OutputDirectory
|
||||
public File getOutputDir() {
|
||||
return this.outputDir.getOrNull();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOutputDir(File outputDir) {
|
||||
this.outputDir.set(outputDir);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the output directory to the value from the given {@code outputDirProvider}.
|
||||
* @param outputDirProvider the provider of the output directory
|
||||
*/
|
||||
public void setOutputDir(Provider<File> outputDirProvider) {
|
||||
this.outputDir.set(outputDirProvider);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,6 +26,8 @@ import org.gradle.api.Action;
|
|||
import org.gradle.api.Project;
|
||||
import org.gradle.api.Task;
|
||||
import org.gradle.api.internal.ConventionTask;
|
||||
import org.gradle.api.provider.PropertyState;
|
||||
import org.gradle.api.provider.Provider;
|
||||
import org.gradle.api.tasks.Input;
|
||||
import org.gradle.api.tasks.OutputDirectory;
|
||||
import org.gradle.api.tasks.TaskAction;
|
||||
|
|
@ -44,7 +46,7 @@ public class BuildInfo extends ConventionTask {
|
|||
|
||||
private final BuildInfoProperties properties = new BuildInfoProperties(getProject());
|
||||
|
||||
private File destinationDir;
|
||||
private PropertyState<File> destinationDir = getProject().property(File.class);
|
||||
|
||||
/**
|
||||
* Generates the {@code build-info.properties} file in the configured
|
||||
|
|
@ -76,23 +78,30 @@ public class BuildInfo extends ConventionTask {
|
|||
*/
|
||||
@OutputDirectory
|
||||
public File getDestinationDir() {
|
||||
return this.destinationDir != null ? this.destinationDir
|
||||
return this.destinationDir.isPresent() ? this.destinationDir.get()
|
||||
: getProject().getBuildDir();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the directory to which the {@code build-info.properties} file will be written.
|
||||
*
|
||||
* @param destinationDir the destination directory
|
||||
*/
|
||||
public void setDestinationDir(File destinationDir) {
|
||||
this.destinationDir = destinationDir;
|
||||
this.destinationDir.set(destinationDir);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the directory to which the {@code build-info.properties} file will be written
|
||||
* to the value from the given {@code destinationDirProvider}.
|
||||
* @param destinationDirProvider the provider of the destination directory
|
||||
*/
|
||||
public void setDestinationDir(Provider<File> destinationDirProvider) {
|
||||
this.destinationDir.set(destinationDirProvider);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the {@link BuildInfoProperties properties} that will be included in the
|
||||
* {@code build-info.properties} file.
|
||||
*
|
||||
* @return the properties
|
||||
*/
|
||||
@Input
|
||||
|
|
@ -102,7 +111,6 @@ public class BuildInfo extends ConventionTask {
|
|||
|
||||
/**
|
||||
* Executes the given {@code action} on the {@link #getProperties()} properties.
|
||||
*
|
||||
* @param action the action
|
||||
*/
|
||||
public void properties(Action<BuildInfoProperties> action) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue