commit
976fa1d6f5
|
|
@ -35,6 +35,7 @@ import org.antora.gradle.AntoraPlugin;
|
|||
import org.antora.gradle.AntoraTask;
|
||||
import org.gradle.StartParameter;
|
||||
import org.gradle.api.Project;
|
||||
import org.gradle.api.file.Directory;
|
||||
import org.gradle.api.logging.LogLevel;
|
||||
import org.gradle.api.plugins.JavaBasePlugin;
|
||||
import org.gradle.api.provider.Provider;
|
||||
|
|
@ -86,14 +87,15 @@ public class AntoraConventions {
|
|||
|
||||
private void configureGenerateAntoraPlaybookTask(Project project,
|
||||
GenerateAntoraPlaybook generateAntoraPlaybookTask) {
|
||||
File nodeProjectDir = getNodeProjectDir(project.getBuildDir());
|
||||
generateAntoraPlaybookTask.getOutputFile().set(new File(nodeProjectDir, "antora-playbook.yml"));
|
||||
Provider<Directory> nodeProjectDir = getNodeProjectDir(project);
|
||||
generateAntoraPlaybookTask.getOutputFile()
|
||||
.set(nodeProjectDir.map((directory) -> directory.file("antora-playbook.yml")));
|
||||
}
|
||||
|
||||
private void configureCopyAntoraPackageJsonTask(Project project, Copy copyAntoraPackageJsonTask) {
|
||||
copyAntoraPackageJsonTask
|
||||
.from(project.getRootProject().file("antora"), (spec) -> spec.include("package.json", "package-lock.json"))
|
||||
.into(getNodeProjectDir(project.getBuildDir()));
|
||||
.into(getNodeProjectDir(project));
|
||||
}
|
||||
|
||||
private void configureNpmInstallTask(Project project, NpmInstallTask npmInstallTask, Copy copyAntoraPackageJson) {
|
||||
|
|
@ -117,7 +119,7 @@ public class AntoraConventions {
|
|||
generateAntoraYmlTask.dependsOn(dependencyVersionsTask);
|
||||
generateAntoraYmlTask.setProperty("componentName", "boot");
|
||||
generateAntoraYmlTask.setProperty("outputFile",
|
||||
new File(project.getBuildDir(), "generated/docs/antora-yml/antora.yml"));
|
||||
project.getLayout().getBuildDirectory().file("generated/docs/antora-yml/antora.yml"));
|
||||
generateAntoraYmlTask.setProperty("yml", getDefaultYml(project));
|
||||
generateAntoraYmlTask.getAsciidocAttributes().putAll(getAsciidocAttributes(project, dependencyVersionsTask));
|
||||
}
|
||||
|
|
@ -202,14 +204,13 @@ public class AntoraConventions {
|
|||
}
|
||||
|
||||
private void configureNodeExtension(Project project, NodeExtension nodeExtension) {
|
||||
File buildDir = project.getBuildDir();
|
||||
nodeExtension.getWorkDir().set(buildDir.toPath().resolve(".gradle/nodejs").toFile());
|
||||
nodeExtension.getNpmWorkDir().set(buildDir.toPath().resolve(".gradle/npm").toFile());
|
||||
nodeExtension.getNodeProjectDir().set(getNodeProjectDir(buildDir));
|
||||
nodeExtension.getWorkDir().set(project.getLayout().getBuildDirectory().dir(".gradle/nodejs"));
|
||||
nodeExtension.getNpmWorkDir().set(project.getLayout().getBuildDirectory().dir(".gradle/npm"));
|
||||
nodeExtension.getNodeProjectDir().set(getNodeProjectDir(project));
|
||||
}
|
||||
|
||||
private File getNodeProjectDir(File buildDir) {
|
||||
return buildDir.toPath().resolve(".gradle/nodeproject").toFile();
|
||||
private Provider<Directory> getNodeProjectDir(Project project) {
|
||||
return project.getLayout().getBuildDirectory().dir(".gradle/nodeproject");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ public class MavenRepositoryPlugin implements Plugin<Project> {
|
|||
public void apply(Project project) {
|
||||
project.getPlugins().apply(MavenPublishPlugin.class);
|
||||
PublishingExtension publishing = project.getExtensions().getByType(PublishingExtension.class);
|
||||
File repositoryLocation = new File(project.getBuildDir(), "maven-repository");
|
||||
File repositoryLocation = project.getLayout().getBuildDirectory().dir("maven-repository").get().getAsFile();
|
||||
publishing.getRepositories().maven((mavenRepository) -> {
|
||||
mavenRepository.setName("project");
|
||||
mavenRepository.setUrl(repositoryLocation.toURI());
|
||||
|
|
|
|||
|
|
@ -174,7 +174,8 @@ public abstract class GenerateAntoraPlaybook extends DefaultTask {
|
|||
|
||||
private void addDir(Map<String, Object> data) {
|
||||
Path playbookDir = toRealPath(getOutputFile().get().getAsFile().toPath()).getParent();
|
||||
Path outputDir = toRealPath(getProject().getBuildDir().toPath().resolve("site"));
|
||||
Path outputDir = toRealPath(
|
||||
getProject().getLayout().getBuildDirectory().dir("site").get().getAsFile().toPath());
|
||||
data.put("output", Map.of("dir", "." + File.separator + playbookDir.relativize(outputDir).toString()));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -93,7 +93,8 @@ public class AutoConfigurationPlugin implements Plugin<Project> {
|
|||
.getByName(SourceSet.MAIN_SOURCE_SET_NAME);
|
||||
task.setSourceSet(main);
|
||||
task.dependsOn(main.getClassesTaskName());
|
||||
task.getOutputFile().set(new File(project.getBuildDir(), "auto-configuration-metadata.properties"));
|
||||
task.getOutputFile()
|
||||
.set(project.getLayout().getBuildDirectory().file("auto-configuration-metadata.properties"));
|
||||
project.getArtifacts()
|
||||
.add(AutoConfigurationPlugin.AUTO_CONFIGURATION_METADATA_CONFIGURATION_NAME, task.getOutputFile(),
|
||||
(artifact) -> artifact.builtBy(task));
|
||||
|
|
|
|||
|
|
@ -135,7 +135,11 @@ public class BomExtension {
|
|||
.all((task) -> {
|
||||
Sync syncBom = this.project.getTasks().create("syncBom", Sync.class);
|
||||
syncBom.dependsOn(task);
|
||||
File generatedBomDir = new File(this.project.getBuildDir(), "generated/bom");
|
||||
File generatedBomDir = this.project.getLayout()
|
||||
.getBuildDirectory()
|
||||
.dir("generated/bom")
|
||||
.get()
|
||||
.getAsFile();
|
||||
syncBom.setDestinationDir(generatedBomDir);
|
||||
syncBom.from(((GenerateMavenPom) task).getDestination(), (pom) -> pom.rename((name) -> "pom.xml"));
|
||||
try {
|
||||
|
|
@ -144,7 +148,12 @@ public class BomExtension {
|
|||
getClass().getClassLoader().getResourceAsStream("effective-bom-settings.xml"),
|
||||
StandardCharsets.UTF_8))
|
||||
.replace("localRepositoryPath",
|
||||
new File(this.project.getBuildDir(), "local-m2-repository").getAbsolutePath());
|
||||
this.project.getLayout()
|
||||
.getBuildDirectory()
|
||||
.dir("local-m2-repository")
|
||||
.get()
|
||||
.getAsFile()
|
||||
.getAbsolutePath());
|
||||
syncBom.from(this.project.getResources().getText().fromString(settingsXmlContent),
|
||||
(settingsXml) -> settingsXml.rename((name) -> "settings.xml"));
|
||||
}
|
||||
|
|
@ -154,8 +163,11 @@ public class BomExtension {
|
|||
MavenExec generateEffectiveBom = this.project.getTasks()
|
||||
.create("generateEffectiveBom", MavenExec.class);
|
||||
generateEffectiveBom.getProjectDir().set(generatedBomDir);
|
||||
File effectiveBom = new File(this.project.getBuildDir(),
|
||||
"generated/effective-bom/" + this.project.getName() + "-effective-bom.xml");
|
||||
File effectiveBom = this.project.getLayout()
|
||||
.getBuildDirectory()
|
||||
.file("generated/effective-bom/" + this.project.getName() + "-effective-bom.xml")
|
||||
.get()
|
||||
.getAsFile();
|
||||
generateEffectiveBom.args("--settings", "settings.xml", "help:effective-pom",
|
||||
"-Doutput=" + effectiveBom);
|
||||
generateEffectiveBom.dependsOn(syncBom);
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ import org.gradle.api.component.AdhocComponentWithVariants;
|
|||
import org.gradle.api.component.ConfigurationVariantDetails;
|
||||
import org.gradle.api.component.SoftwareComponent;
|
||||
import org.gradle.api.file.CopySpec;
|
||||
import org.gradle.api.file.Directory;
|
||||
import org.gradle.api.file.DirectoryProperty;
|
||||
import org.gradle.api.file.FileCollection;
|
||||
import org.gradle.api.file.RegularFileProperty;
|
||||
|
|
@ -65,6 +66,7 @@ import org.gradle.api.model.ObjectFactory;
|
|||
import org.gradle.api.plugins.JavaLibraryPlugin;
|
||||
import org.gradle.api.plugins.JavaPlugin;
|
||||
import org.gradle.api.plugins.JavaPluginExtension;
|
||||
import org.gradle.api.provider.Provider;
|
||||
import org.gradle.api.publish.PublishingExtension;
|
||||
import org.gradle.api.publish.maven.MavenPublication;
|
||||
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin;
|
||||
|
|
@ -170,11 +172,11 @@ public class MavenPluginPlugin implements Plugin<Project> {
|
|||
RuntimeClasspathMavenRepository runtimeClasspathMavenRepository = project.getTasks()
|
||||
.create("runtimeClasspathMavenRepository", RuntimeClasspathMavenRepository.class);
|
||||
runtimeClasspathMavenRepository.getOutputDir()
|
||||
.set(new File(project.getBuildDir(), "runtime-classpath-repository"));
|
||||
.set(project.getLayout().getBuildDirectory().dir("runtime-classpath-repository"));
|
||||
project.getDependencies()
|
||||
.components((components) -> components.all(MavenRepositoryComponentMetadataRule.class));
|
||||
Sync task = project.getTasks().create("populateTestMavenRepository", Sync.class);
|
||||
task.setDestinationDir(new File(project.getBuildDir(), "test-maven-repository"));
|
||||
task.setDestinationDir(project.getLayout().getBuildDirectory().dir("test-maven-repository").get().getAsFile());
|
||||
task.with(copyIntTestMavenRepositoryFiles(project, runtimeClasspathMavenRepository));
|
||||
task.dependsOn(project.getTasks().getByName(MavenRepositoryPlugin.PUBLISH_TO_PROJECT_REPOSITORY_TASK_NAME));
|
||||
project.getTasks().getByName(IntegrationTestPlugin.INT_TEST_TASK_NAME).dependsOn(task);
|
||||
|
|
@ -188,7 +190,7 @@ public class MavenPluginPlugin implements Plugin<Project> {
|
|||
RuntimeClasspathMavenRepository runtimeClasspathMavenRepository) {
|
||||
CopySpec copySpec = project.copySpec();
|
||||
copySpec.from(project.getConfigurations().getByName(MavenRepositoryPlugin.MAVEN_REPOSITORY_CONFIGURATION_NAME));
|
||||
copySpec.from(new File(project.getBuildDir(), "maven-repository"));
|
||||
copySpec.from(project.getLayout().getBuildDirectory().dir("maven-repository"));
|
||||
copySpec.from(runtimeClasspathMavenRepository);
|
||||
return copySpec;
|
||||
}
|
||||
|
|
@ -197,29 +199,29 @@ public class MavenPluginPlugin implements Plugin<Project> {
|
|||
DocumentPluginGoals task = project.getTasks().create("documentPluginGoals", DocumentPluginGoals.class);
|
||||
File pluginXml = new File(generatePluginDescriptorTask.getOutputs().getFiles().getSingleFile(), "plugin.xml");
|
||||
task.getPluginXml().set(pluginXml);
|
||||
task.getOutputDir().set(new File(project.getBuildDir(), "generated/docs/maven-plugin-goals/"));
|
||||
task.getOutputDir().set(project.getLayout().getBuildDirectory().dir("docs/generated/goals/"));
|
||||
task.dependsOn(generatePluginDescriptorTask);
|
||||
}
|
||||
|
||||
private MavenExec addGenerateHelpMojoTask(Project project, Jar jarTask) {
|
||||
File helpMojoDir = new File(project.getBuildDir(), "help-mojo");
|
||||
Provider<Directory> helpMojoDir = project.getLayout().getBuildDirectory().dir("help-mojo");
|
||||
MavenExec task = createGenerateHelpMojoTask(project, helpMojoDir);
|
||||
task.dependsOn(createSyncHelpMojoInputsTask(project, helpMojoDir));
|
||||
includeHelpMojoInJar(jarTask, task);
|
||||
return task;
|
||||
}
|
||||
|
||||
private MavenExec createGenerateHelpMojoTask(Project project, File helpMojoDir) {
|
||||
private MavenExec createGenerateHelpMojoTask(Project project, Provider<Directory> helpMojoDir) {
|
||||
MavenExec task = project.getTasks().create("generateHelpMojo", MavenExec.class);
|
||||
task.getProjectDir().set(helpMojoDir);
|
||||
task.args("org.apache.maven.plugins:maven-plugin-plugin:3.6.1:helpmojo");
|
||||
task.getOutputs().dir(new File(helpMojoDir, "target/generated-sources/plugin"));
|
||||
task.getOutputs().dir(helpMojoDir.map((directory) -> directory.dir("target/generated-sources/plugin")));
|
||||
return task;
|
||||
}
|
||||
|
||||
private Sync createSyncHelpMojoInputsTask(Project project, File helpMojoDir) {
|
||||
private Sync createSyncHelpMojoInputsTask(Project project, Provider<Directory> helpMojoDir) {
|
||||
Sync task = project.getTasks().create("syncHelpMojoInputs", Sync.class);
|
||||
task.setDestinationDir(helpMojoDir);
|
||||
task.setDestinationDir(helpMojoDir.get().getAsFile());
|
||||
File pomFile = new File(project.getProjectDir(), "src/maven/resources/pom.xml");
|
||||
task.from(pomFile, (copy) -> replaceVersionPlaceholder(copy, project));
|
||||
return task;
|
||||
|
|
@ -231,8 +233,10 @@ public class MavenPluginPlugin implements Plugin<Project> {
|
|||
}
|
||||
|
||||
private MavenExec addGeneratePluginDescriptorTask(Project project, Jar jarTask, MavenExec generateHelpMojoTask) {
|
||||
File pluginDescriptorDir = new File(project.getBuildDir(), "plugin-descriptor");
|
||||
File generatedHelpMojoDir = new File(project.getBuildDir(), "generated/sources/helpMojo");
|
||||
Provider<Directory> pluginDescriptorDir = project.getLayout().getBuildDirectory().dir("plugin-descriptor");
|
||||
Provider<Directory> generatedHelpMojoDir = project.getLayout()
|
||||
.getBuildDirectory()
|
||||
.dir("generated/sources/helpMojo");
|
||||
SourceSet mainSourceSet = getMainSourceSet(project);
|
||||
project.getTasks().withType(Javadoc.class, this::setJavadocOptions);
|
||||
FormatHelpMojoSource formattedHelpMojoSource = createFormatHelpMojoSource(project, generateHelpMojoTask,
|
||||
|
|
@ -258,7 +262,7 @@ public class MavenPluginPlugin implements Plugin<Project> {
|
|||
}
|
||||
|
||||
private FormatHelpMojoSource createFormatHelpMojoSource(Project project, MavenExec generateHelpMojoTask,
|
||||
File generatedHelpMojoDir) {
|
||||
Provider<Directory> generatedHelpMojoDir) {
|
||||
FormatHelpMojoSource formatHelpMojoSource = project.getTasks()
|
||||
.create("formatHelpMojoSource", FormatHelpMojoSource.class);
|
||||
formatHelpMojoSource.setGenerator(generateHelpMojoTask);
|
||||
|
|
@ -266,9 +270,10 @@ public class MavenPluginPlugin implements Plugin<Project> {
|
|||
return formatHelpMojoSource;
|
||||
}
|
||||
|
||||
private Sync createSyncPluginDescriptorInputs(Project project, File destination, SourceSet sourceSet) {
|
||||
private Sync createSyncPluginDescriptorInputs(Project project, Provider<Directory> destination,
|
||||
SourceSet sourceSet) {
|
||||
Sync pluginDescriptorInputs = project.getTasks().create("syncPluginDescriptorInputs", Sync.class);
|
||||
pluginDescriptorInputs.setDestinationDir(destination);
|
||||
pluginDescriptorInputs.setDestinationDir(destination.get().getAsFile());
|
||||
File pomFile = new File(project.getProjectDir(), "src/maven/resources/pom.xml");
|
||||
pluginDescriptorInputs.from(pomFile, (copy) -> replaceVersionPlaceholder(copy, project));
|
||||
pluginDescriptorInputs.from(sourceSet.getOutput().getClassesDirs(), (sync) -> sync.into("target/classes"));
|
||||
|
|
@ -277,12 +282,13 @@ public class MavenPluginPlugin implements Plugin<Project> {
|
|||
return pluginDescriptorInputs;
|
||||
}
|
||||
|
||||
private MavenExec createGeneratePluginDescriptorTask(Project project, File mavenDir) {
|
||||
private MavenExec createGeneratePluginDescriptorTask(Project project, Provider<Directory> mavenDir) {
|
||||
MavenExec generatePluginDescriptor = project.getTasks().create("generatePluginDescriptor", MavenExec.class);
|
||||
generatePluginDescriptor.args("org.apache.maven.plugins:maven-plugin-plugin:3.6.1:descriptor");
|
||||
generatePluginDescriptor.getOutputs().dir(new File(mavenDir, "target/classes/META-INF/maven"));
|
||||
generatePluginDescriptor.getOutputs()
|
||||
.dir(mavenDir.map((directory) -> directory.dir("target/classes/META-INF/maven")));
|
||||
generatePluginDescriptor.getInputs()
|
||||
.dir(new File(mavenDir, "target/classes/org"))
|
||||
.dir(mavenDir.map((directory) -> directory.dir("target/classes/org")))
|
||||
.withPathSensitivity(PathSensitivity.RELATIVE)
|
||||
.withPropertyName("plugin classes");
|
||||
generatePluginDescriptor.getProjectDir().set(mavenDir);
|
||||
|
|
@ -298,7 +304,7 @@ public class MavenPluginPlugin implements Plugin<Project> {
|
|||
TaskProvider<PrepareMavenBinaries> task = project.getTasks()
|
||||
.register("prepareMavenBinaries", PrepareMavenBinaries.class,
|
||||
(prepareMavenBinaries) -> prepareMavenBinaries.getOutputDir()
|
||||
.set(new File(project.getBuildDir(), "maven-binaries")));
|
||||
.set(project.getLayout().getBuildDirectory().dir("maven-binaries")));
|
||||
project.getTasks()
|
||||
.getByName(IntegrationTestPlugin.INT_TEST_TASK_NAME)
|
||||
.getInputs()
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@
|
|||
|
||||
package org.springframework.boot.build.starters;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
|
|
@ -24,10 +23,12 @@ import org.gradle.api.Plugin;
|
|||
import org.gradle.api.Project;
|
||||
import org.gradle.api.artifacts.Configuration;
|
||||
import org.gradle.api.artifacts.ConfigurationContainer;
|
||||
import org.gradle.api.file.RegularFile;
|
||||
import org.gradle.api.plugins.JavaBasePlugin;
|
||||
import org.gradle.api.plugins.JavaLibraryPlugin;
|
||||
import org.gradle.api.plugins.JavaPlugin;
|
||||
import org.gradle.api.plugins.PluginContainer;
|
||||
import org.gradle.api.provider.Provider;
|
||||
import org.gradle.api.tasks.bundling.Jar;
|
||||
|
||||
import org.springframework.boot.build.ConventionsPlugin;
|
||||
|
|
@ -56,7 +57,7 @@ public class StarterPlugin implements Plugin<Project> {
|
|||
ConfigurationContainer configurations = project.getConfigurations();
|
||||
Configuration runtimeClasspath = configurations.getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME);
|
||||
starterMetadata.setDependencies(runtimeClasspath);
|
||||
File destination = new File(project.getBuildDir(), "starter-metadata.properties");
|
||||
Provider<RegularFile> destination = project.getLayout().getBuildDirectory().file("starter-metadata.properties");
|
||||
starterMetadata.getDestination().set(destination);
|
||||
configurations.create("starterMetadata");
|
||||
project.getArtifacts()
|
||||
|
|
|
|||
|
|
@ -61,7 +61,12 @@ class ArchitectureCheckTests {
|
|||
}
|
||||
|
||||
File failureReport(ArchitectureCheck architectureCheck) {
|
||||
return new File(architectureCheck.getProject().getBuildDir(), "checkArchitecture/failure-report.txt");
|
||||
return architectureCheck.getProject()
|
||||
.getLayout()
|
||||
.getBuildDirectory()
|
||||
.file("checkArchitecture/failure-report.txt")
|
||||
.get()
|
||||
.getAsFile();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
Loading…
Reference in New Issue