Skip to content

Commit d338df5

Browse files
committed
Avoid stale inputs by using sync rather than copy
Closes gh-30829
1 parent b5167a4 commit d338df5

File tree

1 file changed

+17
-17
lines changed

1 file changed

+17
-17
lines changed

buildSrc/src/main/java/org/springframework/boot/build/mavenplugin/MavenPluginPlugin.java

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@
6969
import org.gradle.api.publish.maven.MavenPublication;
7070
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin;
7171
import org.gradle.api.tasks.Classpath;
72-
import org.gradle.api.tasks.Copy;
7372
import org.gradle.api.tasks.InputFiles;
7473
import org.gradle.api.tasks.JavaExec;
7574
import org.gradle.api.tasks.OutputDirectory;
@@ -78,6 +77,7 @@
7877
import org.gradle.api.tasks.PathSensitivity;
7978
import org.gradle.api.tasks.SourceSet;
8079
import org.gradle.api.tasks.SourceSetContainer;
80+
import org.gradle.api.tasks.Sync;
8181
import org.gradle.api.tasks.TaskAction;
8282
import org.gradle.api.tasks.TaskExecutionException;
8383
import org.gradle.api.tasks.bundling.Jar;
@@ -154,7 +154,7 @@ private void addPopulateIntTestMavenRepositoryTask(Project project) {
154154
.set(new File(project.getBuildDir(), "runtime-classpath-repository"));
155155
project.getDependencies()
156156
.components((components) -> components.all(MavenRepositoryComponentMetadataRule.class));
157-
Copy task = project.getTasks().create("populateIntTestMavenRepository", Copy.class);
157+
Sync task = project.getTasks().create("populateIntTestMavenRepository", Sync.class);
158158
task.setDestinationDir(new File(project.getBuildDir(), "int-test-maven-repository"));
159159
task.with(copyIntTestMavenRepositoryFiles(project, runtimeClasspathMavenRepository));
160160
task.dependsOn(project.getTasks().getByName(MavenRepositoryPlugin.PUBLISH_TO_PROJECT_REPOSITORY_TASK_NAME));
@@ -181,7 +181,7 @@ private void addDocumentPluginGoalsTask(Project project, MavenExec generatePlugi
181181
private MavenExec addGenerateHelpMojoTask(Project project, Jar jarTask) {
182182
File helpMojoDir = new File(project.getBuildDir(), "help-mojo");
183183
MavenExec task = createGenerateHelpMojoTask(project, helpMojoDir);
184-
task.dependsOn(createCopyHelpMojoInputsTask(project, helpMojoDir));
184+
task.dependsOn(createSyncHelpMojoInputsTask(project, helpMojoDir));
185185
includeHelpMojoInJar(jarTask, task);
186186
return task;
187187
}
@@ -194,8 +194,8 @@ private MavenExec createGenerateHelpMojoTask(Project project, File helpMojoDir)
194194
return task;
195195
}
196196

197-
private Copy createCopyHelpMojoInputsTask(Project project, File helpMojoDir) {
198-
Copy task = project.getTasks().create("copyHelpMojoInputs", Copy.class);
197+
private Sync createSyncHelpMojoInputsTask(Project project, File helpMojoDir) {
198+
Sync task = project.getTasks().create("syncHelpMojoInputs", Sync.class);
199199
task.setDestinationDir(helpMojoDir);
200200
File pomFile = new File(project.getProjectDir(), "src/maven/resources/pom.xml");
201201
task.from(pomFile, (copy) -> replaceVersionPlaceholder(copy, project));
@@ -212,11 +212,11 @@ private MavenExec addGeneratePluginDescriptorTask(Project project, Jar jarTask,
212212
File generatedHelpMojoDir = new File(project.getBuildDir(), "generated/sources/helpMojo");
213213
SourceSet mainSourceSet = getMainSourceSet(project);
214214
project.getTasks().withType(Javadoc.class, this::setJavadocOptions);
215-
FormatHelpMojoSourceTask copyFormattedHelpMojoSourceTask = createCopyFormattedHelpMojoSourceTask(project,
215+
FormatHelpMojoSource copyFormattedHelpMojoSourceTask = createFormatHelpMojoSourceTask(project,
216216
generateHelpMojoTask, generatedHelpMojoDir);
217217
project.getTasks().getByName(mainSourceSet.getCompileJavaTaskName()).dependsOn(copyFormattedHelpMojoSourceTask);
218218
mainSourceSet.java((javaSources) -> javaSources.srcDir(copyFormattedHelpMojoSourceTask));
219-
Copy pluginDescriptorInputs = createCopyPluginDescriptorInputs(project, pluginDescriptorDir, mainSourceSet);
219+
Sync pluginDescriptorInputs = createSyncPluginDescriptorInputs(project, pluginDescriptorDir, mainSourceSet);
220220
pluginDescriptorInputs.dependsOn(mainSourceSet.getClassesTaskName());
221221
MavenExec task = createGeneratePluginDescriptorTask(project, pluginDescriptorDir);
222222
task.dependsOn(pluginDescriptorInputs);
@@ -234,17 +234,17 @@ private void setJavadocOptions(Javadoc javadoc) {
234234
options.addMultilineStringsOption("tag").setValue(Arrays.asList("goal:X", "requiresProject:X", "threadSafe:X"));
235235
}
236236

237-
private FormatHelpMojoSourceTask createCopyFormattedHelpMojoSourceTask(Project project,
238-
MavenExec generateHelpMojoTask, File generatedHelpMojoDir) {
239-
FormatHelpMojoSourceTask copyFormattedHelpMojoSourceTask = project.getTasks()
240-
.create("copyFormattedHelpMojoSource", FormatHelpMojoSourceTask.class);
241-
copyFormattedHelpMojoSourceTask.setGenerator(generateHelpMojoTask);
242-
copyFormattedHelpMojoSourceTask.setOutputDir(generatedHelpMojoDir);
243-
return copyFormattedHelpMojoSourceTask;
237+
private FormatHelpMojoSource createFormatHelpMojoSourceTask(Project project, MavenExec generateHelpMojoTask,
238+
File generatedHelpMojoDir) {
239+
FormatHelpMojoSource formatHelpMojoSource = project.getTasks().create("formatHelpMojoSource",
240+
FormatHelpMojoSource.class);
241+
formatHelpMojoSource.setGenerator(generateHelpMojoTask);
242+
formatHelpMojoSource.setOutputDir(generatedHelpMojoDir);
243+
return formatHelpMojoSource;
244244
}
245245

246-
private Copy createCopyPluginDescriptorInputs(Project project, File destination, SourceSet sourceSet) {
247-
Copy pluginDescriptorInputs = project.getTasks().create("copyPluginDescriptorInputs", Copy.class);
246+
private Sync createSyncPluginDescriptorInputs(Project project, File destination, SourceSet sourceSet) {
247+
Sync pluginDescriptorInputs = project.getTasks().create("copyPluginDescriptorInputs", Sync.class);
248248
pluginDescriptorInputs.setDestinationDir(destination);
249249
File pomFile = new File(project.getProjectDir(), "src/maven/resources/pom.xml");
250250
pluginDescriptorInputs.from(pomFile, (copy) -> replaceVersionPlaceholder(copy, project));
@@ -291,7 +291,7 @@ private void addExtractVersionPropertiesTask(Project project) {
291291
.map((dir) -> dir.file("extracted-versions.properties")));
292292
}
293293

294-
public static class FormatHelpMojoSourceTask extends DefaultTask {
294+
public static class FormatHelpMojoSource extends DefaultTask {
295295

296296
private Task generator;
297297

0 commit comments

Comments
 (0)