mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-08-29 03:06:45 +08:00
Do not exclude DevTools from Maven AOT processing classpath
When excluded from the AOT processing classpath, a reflection hint for DevTools' RestartScopeInitializer that's registered in spring.factories is not generated. When the native image is compiled we have no control over its classpath so DevTools is included. This causes a failure at runtime as RestartScopeInitializer cannot be loaded due to the missing reflection hint. Until we have control over the native image classpath, we need to include DevTools on the AOT processing classpath and then rely on DevTools disabling itself in a native image which it already does. Fixes gh-35853
This commit is contained in:
parent
9a2b9cb066
commit
853caf9a59
@ -25,7 +25,6 @@ import org.springframework.util.ClassUtils;
|
||||
public class SampleApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
Assert.state(!ClassUtils.isPresent("org.springframework.boot.devtools.autoconfigure.DevToolsProperties", null), "Should not have devtools");
|
||||
Assert.state(!ClassUtils.isPresent("org.springframework.boot.docker.compose.core.DockerCompose", null), "Should not have docker-compose");
|
||||
SpringApplication.run(SampleApplication.class, args);
|
||||
}
|
||||
|
@ -111,8 +111,7 @@ public class ProcessAotMojo extends AbstractAotMojo {
|
||||
|
||||
private URL[] getClassPath() throws Exception {
|
||||
File[] directories = new File[] { this.classesDirectory, this.generatedClasses };
|
||||
return getClassPath(directories, new ExcludeTestScopeArtifactFilter(), DEVTOOLS_EXCLUDE_FILTER,
|
||||
DOCKER_COMPOSE_EXCLUDE_FILTER);
|
||||
return getClassPath(directories, new ExcludeTestScopeArtifactFilter(), DOCKER_COMPOSE_EXCLUDE_FILTER);
|
||||
}
|
||||
|
||||
private RunArguments resolveArguments() {
|
||||
|
Loading…
Reference in New Issue
Block a user