我遇到了 Spring-native 的问题,它没有从依赖项中加载我的 RestControllers(很可能是服务)。我的项目设置如下所示:我有一堆独立的 Spring Boot 应用程序,并将它们组合在一起,形成一个这样的多合一运行器。
@SpringBootApplication
@NativeHint(options = { "--enable-all-security-services" }, resources = {
@ResourceHint(patterns = "eu/neclab/ngsildbroker/*/controller/*.java"),
@ResourceHint(patterns = "org/flywaydb/core/internal/version.txt") }, types = {
@TypeHint(types = { EntityController.class }) })
public class Runner {
public static void main(String[] args) throws Exception {
SpringApplication.run(new Class[] { RegistryHandler.class, HistoryHandler.class,
QueryHandler.class,
SubscriptionHandler.class, EntityHandler.class }, args);
}
}
从 Java 中这一切正常,我的依赖项中的 Spring 应用程序正在正确加载并提供定义的 RestControllers。
现在我开始玩 Spring-native 并且现在可以全部编译它并且它还包含依赖项(当没有在 maven 中安装正确的类时,我得到了一个在构建时找不到的类)我的原生 pom 看起来像这样(更多或更少从教程中复制粘贴)
<profile>
<id>native</id>
<activation>
<property>
<name>native</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.springframework.experimental</groupId>
<artifactId>spring-aot-maven-plugin</artifactId>
<version>0.11.0</version>
<executions>
<execution>
<id>generate</id>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<image>
<builder>paketobuildpacks/builder:tiny</builder>
<env>
<BP_NATIVE_IMAGE>true</BP_NATIVE_IMAGE>
</env>
<name>scorpiobroker/aaio</name>
</image>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
...但是没有一个restcontrollers被加载我总是得到404。我尝试了NativeHints的各种变体,但我无法让它加载RestControllers。有谁知道我如何告诉 Spring-Native 加载我的 RestControllers?我认为通过 SpringApplication.run 加载它应该加载所有模块,但似乎 Spring-Native 不能那样处理它。任何提示或帮助将不胜感激。