diff --git a/buildSrc/src/main/java/org/springframework/boot/build/SyncAppSource.java b/buildSrc/src/main/java/org/springframework/boot/build/SyncAppSource.java index ae318adf0f8..0281f2896e9 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/SyncAppSource.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/SyncAppSource.java @@ -16,8 +16,11 @@ package org.springframework.boot.build; +import javax.inject.Inject; + import org.gradle.api.DefaultTask; import org.gradle.api.file.DirectoryProperty; +import org.gradle.api.file.FileSystemOperations; import org.gradle.api.provider.Property; import org.gradle.api.tasks.Input; import org.gradle.api.tasks.InputDirectory; @@ -32,8 +35,12 @@ import org.gradle.api.tasks.TaskAction; */ public abstract class SyncAppSource extends DefaultTask { - public SyncAppSource() { + private final FileSystemOperations fileSystemOperations; + + @Inject + public SyncAppSource(FileSystemOperations fileSystemOperations) { getPluginVersion().convention(getProject().provider(() -> getProject().getVersion().toString())); + this.fileSystemOperations = fileSystemOperations; } @InputDirectory @@ -47,11 +54,11 @@ public abstract class SyncAppSource extends DefaultTask { @TaskAction void syncAppSources() { - getProject().sync((copySpec) -> { + this.fileSystemOperations.sync((copySpec) -> { copySpec.from(getSourceDirectory()); copySpec.into(getDestinationDirectory()); copySpec.filter((line) -> line.replace("id \"org.springframework.boot\"", - "id \"org.springframework.boot\" version \"" + getProject().getVersion() + "\"")); + "id \"org.springframework.boot\" version \"" + getPluginVersion().get() + "\"")); }); } diff --git a/buildSrc/src/main/java/org/springframework/boot/build/cli/HomebrewFormula.java b/buildSrc/src/main/java/org/springframework/boot/build/cli/HomebrewFormula.java index 23d90fae7c9..e96487213da 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/cli/HomebrewFormula.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/cli/HomebrewFormula.java @@ -19,11 +19,14 @@ package org.springframework.boot.build.cli; import java.io.File; import java.security.MessageDigest; +import javax.inject.Inject; + import org.apache.commons.codec.digest.DigestUtils; import org.gradle.api.DefaultTask; import org.gradle.api.Project; import org.gradle.api.Task; import org.gradle.api.file.DirectoryProperty; +import org.gradle.api.file.FileSystemOperations; import org.gradle.api.file.RegularFileProperty; import org.gradle.api.provider.MapProperty; import org.gradle.api.tasks.Input; @@ -43,12 +46,16 @@ import org.springframework.boot.build.artifacts.ArtifactRelease; */ public abstract class HomebrewFormula extends DefaultTask { - public HomebrewFormula() { + private final FileSystemOperations fileSystemOperations; + + @Inject + public HomebrewFormula(FileSystemOperations fileSystemOperations) { Project project = getProject(); MapProperty properties = getProperties(); properties.put("hash", getArchive().map((archive) -> sha256(archive.getAsFile()))); getProperties().put("repo", ArtifactRelease.forProject(project).getDownloadRepo()); getProperties().put("version", project.getVersion().toString()); + this.fileSystemOperations = fileSystemOperations; } private String sha256(File file) { @@ -77,7 +84,7 @@ public abstract class HomebrewFormula extends DefaultTask { @TaskAction void createFormula() { - getProject().copy((copy) -> { + this.fileSystemOperations.copy((copy) -> { copy.from(getTemplate()); copy.into(getOutputDir()); copy.expand(getProperties().get()); diff --git a/buildSrc/src/main/java/org/springframework/boot/build/mavenplugin/PrepareMavenBinaries.java b/buildSrc/src/main/java/org/springframework/boot/build/mavenplugin/PrepareMavenBinaries.java index ff21e553c28..0d17113ed2c 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/mavenplugin/PrepareMavenBinaries.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/mavenplugin/PrepareMavenBinaries.java @@ -16,10 +16,13 @@ package org.springframework.boot.build.mavenplugin; +import javax.inject.Inject; + import org.gradle.api.DefaultTask; import org.gradle.api.Task; import org.gradle.api.artifacts.Configuration; import org.gradle.api.file.DirectoryProperty; +import org.gradle.api.file.FileSystemOperations; import org.gradle.api.provider.SetProperty; import org.gradle.api.tasks.Input; import org.gradle.api.tasks.OutputDirectory; @@ -32,6 +35,13 @@ import org.gradle.api.tasks.TaskAction; */ public abstract class PrepareMavenBinaries extends DefaultTask { + private final FileSystemOperations fileSystemOperations; + + @Inject + public PrepareMavenBinaries(FileSystemOperations fileSystemOperations) { + this.fileSystemOperations = fileSystemOperations; + } + @OutputDirectory public abstract DirectoryProperty getOutputDir(); @@ -40,7 +50,7 @@ public abstract class PrepareMavenBinaries extends DefaultTask { @TaskAction public void prepareBinaries() { - getProject().sync((sync) -> { + this.fileSystemOperations.sync((sync) -> { sync.into(getOutputDir()); for (String version : getVersions().get()) { Configuration configuration = getProject().getConfigurations()