Spring Boot が一部のクラスを自動構成するのを防ぐのに苦労しています (この例では: SolrAutoConfiguration)。説明するために、大幅に縮小した例をセットアップしました。
https://github.com/timtebeek/componentscan-exclusions
実際には、20 以上の内部@SpringBootApplication
プロジェクトがあり、それぞれが独自の依存関係をまとめています。(理想的ではありません/私の考えではありませんが、今から離れるのは難しいです。)
この問題は、複数のサブプロジェクトが Solr 5.2.1 を使用しているために発生しますが、Spring Boot は 4.x としか互換性がありません。@SpringBootApplication
最終的なアプリケーション (例では module-b) では、すべてのモジュールですべてのクラスをインポートしたいのですがSolrAutoConfiguration
、実行はできません。
@ComponentScan("project") // Broad scan across all company jars
@SpringBootApplication(exclude = { SolrAutoConfiguration.class }) // Failing exclude
public class ModuleBApp {
public static void main(final String[] args) {
SpringApplication.run(ModuleBApp.class, args);
}
}
特定の除外なしで@SpringBootApplication
取得された のインスタンスは引き続き をロードするため、これは失敗します。@ComponentScan
SolrAutoConfiguration
複数のクラスを組み合わせるときに、自動構成クラスを適切に除外するにはどうすればよい@SpringBootApplication
ですか?
私はすでにexcludeFilters
最終版@SpringBootApplication
で作業しようとしましたが、まだ解決には至っていません。