58
58
import org .gradle .api .component .ConfigurationVariantDetails ;
59
59
import org .gradle .api .component .SoftwareComponent ;
60
60
import org .gradle .api .file .CopySpec ;
61
+ import org .gradle .api .file .Directory ;
61
62
import org .gradle .api .file .DirectoryProperty ;
62
63
import org .gradle .api .file .FileCollection ;
63
64
import org .gradle .api .file .RegularFileProperty ;
64
65
import org .gradle .api .model .ObjectFactory ;
65
66
import org .gradle .api .plugins .JavaLibraryPlugin ;
66
67
import org .gradle .api .plugins .JavaPlugin ;
67
68
import org .gradle .api .plugins .JavaPluginExtension ;
69
+ import org .gradle .api .provider .Provider ;
68
70
import org .gradle .api .publish .PublishingExtension ;
69
71
import org .gradle .api .publish .maven .MavenPublication ;
70
72
import org .gradle .api .publish .maven .plugins .MavenPublishPlugin ;
@@ -170,11 +172,11 @@ private void addPopulateIntTestMavenRepositoryTask(Project project) {
170
172
RuntimeClasspathMavenRepository runtimeClasspathMavenRepository = project .getTasks ()
171
173
.create ("runtimeClasspathMavenRepository" , RuntimeClasspathMavenRepository .class );
172
174
runtimeClasspathMavenRepository .getOutputDir ()
173
- .set (new File ( project .getBuildDir (), "runtime-classpath-repository" ));
175
+ .set (project .getLayout (). getBuildDirectory (). dir ( "runtime-classpath-repository" ));
174
176
project .getDependencies ()
175
177
.components ((components ) -> components .all (MavenRepositoryComponentMetadataRule .class ));
176
178
Sync task = project .getTasks ().create ("populateTestMavenRepository" , Sync .class );
177
- task .setDestinationDir (new File ( project .getBuildDir (), "test-maven-repository" ));
179
+ task .setDestinationDir (project .getLayout (). getBuildDirectory (). dir ( "test-maven-repository" ). get (). getAsFile ( ));
178
180
task .with (copyIntTestMavenRepositoryFiles (project , runtimeClasspathMavenRepository ));
179
181
task .dependsOn (project .getTasks ().getByName (MavenRepositoryPlugin .PUBLISH_TO_PROJECT_REPOSITORY_TASK_NAME ));
180
182
project .getTasks ().getByName (IntegrationTestPlugin .INT_TEST_TASK_NAME ).dependsOn (task );
@@ -188,7 +190,7 @@ private CopySpec copyIntTestMavenRepositoryFiles(Project project,
188
190
RuntimeClasspathMavenRepository runtimeClasspathMavenRepository ) {
189
191
CopySpec copySpec = project .copySpec ();
190
192
copySpec .from (project .getConfigurations ().getByName (MavenRepositoryPlugin .MAVEN_REPOSITORY_CONFIGURATION_NAME ));
191
- copySpec .from (new File ( project .getBuildDir (), "maven-repository" ));
193
+ copySpec .from (project .getLayout (). getBuildDirectory (). dir ( "maven-repository" ));
192
194
copySpec .from (runtimeClasspathMavenRepository );
193
195
return copySpec ;
194
196
}
@@ -197,29 +199,29 @@ private void addDocumentPluginGoalsTask(Project project, MavenExec generatePlugi
197
199
DocumentPluginGoals task = project .getTasks ().create ("documentPluginGoals" , DocumentPluginGoals .class );
198
200
File pluginXml = new File (generatePluginDescriptorTask .getOutputs ().getFiles ().getSingleFile (), "plugin.xml" );
199
201
task .getPluginXml ().set (pluginXml );
200
- task .getOutputDir ().set (new File ( project .getBuildDir (), "docs/generated/goals/" ));
202
+ task .getOutputDir ().set (project .getLayout (). getBuildDirectory (). dir ( "docs/generated/goals/" ));
201
203
task .dependsOn (generatePluginDescriptorTask );
202
204
}
203
205
204
206
private MavenExec addGenerateHelpMojoTask (Project project , Jar jarTask ) {
205
- File helpMojoDir = new File ( project .getBuildDir (), "help-mojo" );
207
+ Provider < Directory > helpMojoDir = project .getLayout (). getBuildDirectory (). dir ( "help-mojo" );
206
208
MavenExec task = createGenerateHelpMojoTask (project , helpMojoDir );
207
209
task .dependsOn (createSyncHelpMojoInputsTask (project , helpMojoDir ));
208
210
includeHelpMojoInJar (jarTask , task );
209
211
return task ;
210
212
}
211
213
212
- private MavenExec createGenerateHelpMojoTask (Project project , File helpMojoDir ) {
214
+ private MavenExec createGenerateHelpMojoTask (Project project , Provider < Directory > helpMojoDir ) {
213
215
MavenExec task = project .getTasks ().create ("generateHelpMojo" , MavenExec .class );
214
216
task .getProjectDir ().set (helpMojoDir );
215
217
task .args ("org.apache.maven.plugins:maven-plugin-plugin:3.6.1:helpmojo" );
216
- task .getOutputs ().dir (new File ( helpMojoDir , "target/generated-sources/plugin" ));
218
+ task .getOutputs ().dir (helpMojoDir . map (( directory ) -> directory . dir ( "target/generated-sources/plugin" ) ));
217
219
return task ;
218
220
}
219
221
220
- private Sync createSyncHelpMojoInputsTask (Project project , File helpMojoDir ) {
222
+ private Sync createSyncHelpMojoInputsTask (Project project , Provider < Directory > helpMojoDir ) {
221
223
Sync task = project .getTasks ().create ("syncHelpMojoInputs" , Sync .class );
222
- task .setDestinationDir (helpMojoDir );
224
+ task .setDestinationDir (helpMojoDir . get (). getAsFile () );
223
225
File pomFile = new File (project .getProjectDir (), "src/maven/resources/pom.xml" );
224
226
task .from (pomFile , (copy ) -> replaceVersionPlaceholder (copy , project ));
225
227
return task ;
@@ -231,8 +233,10 @@ private void includeHelpMojoInJar(Jar jarTask, JavaExec generateHelpMojoTask) {
231
233
}
232
234
233
235
private MavenExec addGeneratePluginDescriptorTask (Project project , Jar jarTask , MavenExec generateHelpMojoTask ) {
234
- File pluginDescriptorDir = new File (project .getBuildDir (), "plugin-descriptor" );
235
- File generatedHelpMojoDir = new File (project .getBuildDir (), "generated/sources/helpMojo" );
236
+ Provider <Directory > pluginDescriptorDir = project .getLayout ().getBuildDirectory ().dir ("plugin-descriptor" );
237
+ Provider <Directory > generatedHelpMojoDir = project .getLayout ()
238
+ .getBuildDirectory ()
239
+ .dir ("generated/sources/helpMojo" );
236
240
SourceSet mainSourceSet = getMainSourceSet (project );
237
241
project .getTasks ().withType (Javadoc .class , this ::setJavadocOptions );
238
242
FormatHelpMojoSource formattedHelpMojoSource = createFormatHelpMojoSource (project , generateHelpMojoTask ,
@@ -258,17 +262,18 @@ private void setJavadocOptions(Javadoc javadoc) {
258
262
}
259
263
260
264
private FormatHelpMojoSource createFormatHelpMojoSource (Project project , MavenExec generateHelpMojoTask ,
261
- File generatedHelpMojoDir ) {
265
+ Provider < Directory > generatedHelpMojoDir ) {
262
266
FormatHelpMojoSource formatHelpMojoSource = project .getTasks ()
263
267
.create ("formatHelpMojoSource" , FormatHelpMojoSource .class );
264
268
formatHelpMojoSource .setGenerator (generateHelpMojoTask );
265
269
formatHelpMojoSource .getOutputDir ().set (generatedHelpMojoDir );
266
270
return formatHelpMojoSource ;
267
271
}
268
272
269
- private Sync createSyncPluginDescriptorInputs (Project project , File destination , SourceSet sourceSet ) {
273
+ private Sync createSyncPluginDescriptorInputs (Project project , Provider <Directory > destination ,
274
+ SourceSet sourceSet ) {
270
275
Sync pluginDescriptorInputs = project .getTasks ().create ("syncPluginDescriptorInputs" , Sync .class );
271
- pluginDescriptorInputs .setDestinationDir (destination );
276
+ pluginDescriptorInputs .setDestinationDir (destination . get (). getAsFile () );
272
277
File pomFile = new File (project .getProjectDir (), "src/maven/resources/pom.xml" );
273
278
pluginDescriptorInputs .from (pomFile , (copy ) -> replaceVersionPlaceholder (copy , project ));
274
279
pluginDescriptorInputs .from (sourceSet .getOutput ().getClassesDirs (), (sync ) -> sync .into ("target/classes" ));
@@ -277,12 +282,13 @@ private Sync createSyncPluginDescriptorInputs(Project project, File destination,
277
282
return pluginDescriptorInputs ;
278
283
}
279
284
280
- private MavenExec createGeneratePluginDescriptorTask (Project project , File mavenDir ) {
285
+ private MavenExec createGeneratePluginDescriptorTask (Project project , Provider < Directory > mavenDir ) {
281
286
MavenExec generatePluginDescriptor = project .getTasks ().create ("generatePluginDescriptor" , MavenExec .class );
282
287
generatePluginDescriptor .args ("org.apache.maven.plugins:maven-plugin-plugin:3.6.1:descriptor" );
283
- generatePluginDescriptor .getOutputs ().dir (new File (mavenDir , "target/classes/META-INF/maven" ));
288
+ generatePluginDescriptor .getOutputs ()
289
+ .dir (mavenDir .map ((directory ) -> directory .dir ("target/classes/META-INF/maven" )));
284
290
generatePluginDescriptor .getInputs ()
285
- .dir (new File ( mavenDir , "target/classes/org" ))
291
+ .dir (mavenDir . map (( directory ) -> directory . dir ( "target/classes/org" ) ))
286
292
.withPathSensitivity (PathSensitivity .RELATIVE )
287
293
.withPropertyName ("plugin classes" );
288
294
generatePluginDescriptor .getProjectDir ().set (mavenDir );
@@ -298,7 +304,7 @@ private void addPrepareMavenBinariesTask(Project project) {
298
304
TaskProvider <PrepareMavenBinaries > task = project .getTasks ()
299
305
.register ("prepareMavenBinaries" , PrepareMavenBinaries .class ,
300
306
(prepareMavenBinaries ) -> prepareMavenBinaries .getOutputDir ()
301
- .set (new File ( project .getBuildDir (), "maven-binaries" )));
307
+ .set (project .getLayout (). getBuildDirectory (). dir ( "maven-binaries" )));
302
308
project .getTasks ()
303
309
.getByName (IntegrationTestPlugin .INT_TEST_TASK_NAME )
304
310
.getInputs ()
0 commit comments