30
30
import org .gradle .api .Plugin ;
31
31
import org .gradle .api .Project ;
32
32
import org .gradle .api .artifacts .Configuration ;
33
+ import org .gradle .api .artifacts .ConfigurationContainer ;
33
34
import org .gradle .api .artifacts .Dependency ;
34
35
import org .gradle .api .file .DuplicatesStrategy ;
35
36
import org .gradle .api .file .FileCollection ;
@@ -112,7 +113,7 @@ public void apply(final Project project) {
112
113
SourceSetContainer sourceSets = project .getConvention ().getPlugin (JavaPluginConvention .class ).getSourceSets ();
113
114
114
115
// Create a detached configuration that holds dependencies for AOT generation
115
- SourceSet aotMainSourceSet = createAotMainSourceSet (sourceSets , generatedFilesPath );
116
+ SourceSet aotMainSourceSet = createAotMainSourceSet (sourceSets , project . getConfigurations (), generatedFilesPath );
116
117
GenerateAotSources generateAotSources = createGenerateAotSourcesTask (project , sourceSets );
117
118
project .getTasks ().named (aotMainSourceSet .getCompileJavaTaskName (), JavaCompile .class , (aotCompileJava ) -> {
118
119
aotCompileJava .source (generateAotSources .getSourcesOutputDirectory ());
@@ -138,7 +139,7 @@ public void apply(final Project project) {
138
139
});
139
140
140
141
// Create a detached configuration that holds dependencies for AOT test generation
141
- SourceSet aotTestSourceSet = createAotTestSourceSet (sourceSets , generatedFilesPath );
142
+ SourceSet aotTestSourceSet = createAotTestSourceSet (sourceSets , project . getConfigurations (), generatedFilesPath );
142
143
GenerateAotTestSources generateAotTestSources = createGenerateAotTestSourcesTask (project , sourceSets );
143
144
project .getTasks ().named (aotTestSourceSet .getCompileJavaTaskName (), JavaCompile .class , (aotTestCompileJava ) -> {
144
145
aotTestCompileJava .source (generateAotTestSources .getGeneratedSourcesOutputDirectory ());
@@ -171,8 +172,8 @@ public void apply(final Project project) {
171
172
nativeCompile .dependsOn (generatedSourcesJar );
172
173
});
173
174
graal .getBinaries ().named (NativeImagePlugin .NATIVE_MAIN_EXTENSION ).configure (options -> {
174
- Provider <RegularFile > generatedSources = generatedSourcesJar .getArchiveFile ();
175
- options .classpath (generatedSources );
175
+ Provider <RegularFile > generatedSources = generatedSourcesJar .getArchiveFile ();
176
+ options .classpath (generatedSources );
176
177
});
177
178
graal .getBinaries ().named (NativeImagePlugin .NATIVE_TEST_EXTENSION ).configure (options -> {
178
179
Provider <RegularFile > generatedTestSources = generatedTestSourcesJar .getArchiveFile ();
@@ -218,11 +219,13 @@ private Path createGeneratedSourcesFolder(Project project) {
218
219
}
219
220
}
220
221
221
- private SourceSet createAotMainSourceSet (SourceSetContainer sourceSets , Path generatedFilesPath ) {
222
+ private SourceSet createAotMainSourceSet (SourceSetContainer sourceSets , ConfigurationContainer configurations , Path generatedFilesPath ) {
222
223
File aotSourcesDirectory = generatedFilesPath .resolve ("sources" ).resolve (AOT_MAIN_SOURCE_SET_NAME ).toFile ();
223
224
File aotResourcesDirectory = generatedFilesPath .resolve ("resources" ).resolve (AOT_MAIN_SOURCE_SET_NAME ).toFile ();
224
225
SourceSet aotMainSourceSet = sourceSets .create (AOT_MAIN_SOURCE_SET_NAME );
225
- aotMainSourceSet .setCompileClasspath (sourceSets .findByName (SourceSet .MAIN_SOURCE_SET_NAME ).getRuntimeClasspath ());
226
+ FileCollection aotCompileClasspath = sourceSets .findByName (SourceSet .MAIN_SOURCE_SET_NAME ).getRuntimeClasspath ()
227
+ .minus (configurations .getByName (SpringBootPlugin .DEVELOPMENT_ONLY_CONFIGURATION_NAME ));
228
+ aotMainSourceSet .setCompileClasspath (aotCompileClasspath );
226
229
aotMainSourceSet .getJava ().setSrcDirs (Collections .singletonList (aotSourcesDirectory ));
227
230
aotMainSourceSet .getResources ().setSrcDirs (Collections .singletonList (aotResourcesDirectory ));
228
231
return aotMainSourceSet ;
@@ -268,11 +271,13 @@ private Configuration createAotGenerationConfiguration(Project project) {
268
271
return detachedConfiguration ;
269
272
}
270
273
271
- private SourceSet createAotTestSourceSet (SourceSetContainer sourceSets , Path generatedFilesPath ) {
274
+ private SourceSet createAotTestSourceSet (SourceSetContainer sourceSets , ConfigurationContainer configurations , Path generatedFilesPath ) {
272
275
File aotTestSourcesDirectory = generatedFilesPath .resolve ("sources" ).resolve (AOT_TEST_SOURCE_SET_NAME ).toFile ();
273
276
File aotTestResourcesDirectory = generatedFilesPath .resolve ("resources" ).resolve (AOT_TEST_SOURCE_SET_NAME ).toFile ();
274
277
SourceSet aotTestSourceSet = sourceSets .create (AOT_TEST_SOURCE_SET_NAME );
275
- aotTestSourceSet .setCompileClasspath (sourceSets .findByName (SourceSet .TEST_SOURCE_SET_NAME ).getRuntimeClasspath ());
278
+ FileCollection aotTestCompileClasspath = sourceSets .findByName (SourceSet .TEST_SOURCE_SET_NAME ).getRuntimeClasspath ()
279
+ .minus (configurations .getByName (SpringBootPlugin .DEVELOPMENT_ONLY_CONFIGURATION_NAME ));
280
+ aotTestSourceSet .setCompileClasspath (aotTestCompileClasspath );
276
281
aotTestSourceSet .getJava ().setSrcDirs (Collections .singletonList (aotTestSourcesDirectory ));
277
282
aotTestSourceSet .getResources ().setSrcDirs (Collections .singletonList (aotTestResourcesDirectory ));
278
283
return aotTestSourceSet ;
0 commit comments