在 CloudFoundry WAR 部署中排除某些 WebApplicationInitializers

Exclude certain WebApplicationInitializers in CloudFoundry WAR deploy

这个问题有一个具体版本和一个通用版本;我会问这两种方式。

具体问题

我们有一个传统的 Spring Web 应用程序,它与我们正在推送到 Cloud Foundry 的 Apache Camel 集成。它取决于引入 spring-cloud-security(因此,spring-boot-autoconfigure 等)的自定义库。部署到 Cloud Foundry 时,Java 自动重新配置会在类路径上查找 WebApplicationInitializer,它找到的是 JerseyAutoConfiguration。当它调用那个特定的 WebApplicationInitializer 时,我们得到注释解析错误。有没有办法排除那个? @EnableAutoConfiguration(exclude=...) 不起作用,因为这在自动配置步骤中没有发生。

一般问题

有没有办法通过 web.xml 或其他一些工具告诉 Java 自动重新配置代码(通过 Java buildpack 包含)跳过执行某些 WebApplicationInitializers?

如果您将应用部署为可执行文件而不是 WAR,则不会扫描 WebApplicationInitializers(这是 Spring 而非构建包)。