web-dev-qa-db-ja.com

特定の依存関係をspring-boot-starter-parentから除外する方法

レガシーのSpringアプリケーションを使用していて、Spring Bootに移行したいと考えています。私の意図は、spring-boot-starter-data-jpaを使用することです。このため、pom.xmlに次のセクションを追加しました(すべてのspring-boot-dependenciesを管理します):

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.3.RELEASE</version>
</parent>

しかし、これは私がしばらくの間保持する必要がある特定の依存関係を台無しにしています。現在Seleniumの依存関係(バージョン2.53.0;別のプロジェクトから推移的に追加されています)を使用していますが、spring-bootは3.9.1の依存関係をフェッチしています。

3.9.1依存関係を除外したいのですが、exclusionフィルターが期待どおりに機能しません。

要約すると、spring-boot-starter-parentのマネージドspring-boot-starter-data-jpaではなくSelenium-Javaspring-boot-dependenciesを使用したいと思います。

この点で助けを感謝します。

4
s4ik4t

<excludes>をいじり回す代わりに、(何を除外したかを把握した後で)何を含める必要があるかを再度把握してみてください。説明されているようにバージョンを上書きするだけです ここでは、Spring Bootのリファレンスガイド

spring-boot-starter-parentを親として使用している場合、<Selenium.version><properties>セクションに追加して、必要なバージョンを指定できます。

<properties>
  <Selenium.version>2.53.0</Selenium.version>
</properties>

これにより、Spring Bootで必要なバージョンが使用されます。

11
M. Deinum

除外タグで除外する必要があるpom.xmlに依存関係を記述します。除外された依存関係はダウンロードされません:

<dependency>
      <groupId>sample.ProjectA</groupId>
      <artifactId>Project-A</artifactId>
      <version>1.0</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion> 
 <!-- declare the exclusion here -->
          <groupId>sample.ProjectB</groupId>
          <artifactId>Project-B</artifactId>
        </exclusion>
      </exclusions> 
    </dependency>
0
sreenath reddy