Maven-Spring BootStarterのバージョン
私はSpringBoot Starterのバージョンの専門家ではなく、問題に直面しています。この春のブートスターターを使用してプロジェクトをビルドしようとしています。そして、このjarファイルの説明にあるように、組み込みライブラリのバージョンは5.2.0である必要があります。しかし、この依存関係をプロジェクトに追加したとき、組み込みライブラリのバージョンが予想とは異なることがわかりました。私のMavenプラグインは、バージョン5.1.6を示していますが、一部のクラスは5.2.0モジュールのメソッドに依存しているため、コードがコンパイルされません。
そしてもう1つあります。別のプロジェクトで、同じ依存関係を追加しました。しかし、それは大丈夫です、バージョンはMavenリポジトリからの説明と同じです。これら2つのプロジェクトには違いがあります。それらの1つはspring-bootバージョン2.1.9(コンパイルされません)で、もう1つは-2.3.4(whihkはうまく機能します)です。そして、pomのartefactIdを介してスターターライブラリに含まれているバージョンを確認したところ、問題はなく、5.2.0です。
ここpom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>adapters</artifactId>
<groupId>com.alarislabs</groupId>
<version>0.0.1</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>security</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>
</dependencies>
すべてのMaven依存関係を持つm2リポジトリを削除してから再度ダウンロードしようとしましたが、まだ問題があります。pom.xmlを間違えましたか?たぶん私のIntelliJに何か問題がありますか?
pomの依存関係のバージョン
プラグインのバージョンが間違っています
プラグインの正しいバージョン
回答
Spring Bootは、いくつかの依存関係バージョンを管理して、それらが相互に互換性があることを確認できるようにします。
このpom.xmlファイルを見て、Spring Boot2.3.4.RELEASEによって管理されている依存関係のバージョンを確認してください。バージョン番号を変更して、そのバージョンで管理されている依存関係を確認できます。
https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/2.3.4.RELEASE/spring-boot-dependencies-2.3.4.RELEASE.pom
利点:
- 依存関係リストから依存関係を使用する場合は、pom.xmlでバージョンを指定する必要はありません。または、その依存関係の公式のspring-boot-starterが存在するかどうかを確認してください。存在する場合は、spring-boot-starter依存関係を使用してください。ここでも、バージョンを指定する必要はありません。
- Springは、他のすべてのライブラリで適切に機能する依存関係をプルするため、互換性(実行時またはコンパイル時)エラーが発生しません。
- Spring Bootのバージョンをアップグレードすると、すべての管理対象の依存関係が更新されます。また、互換性も維持されます。
あなたの問題を解決する方法:
pom.xmlで、のバージョンを指定する必要はありませんspring-boot-starter-oauth2-resource-server。このライブラリはSpringBootによって管理されています。SpringBootバージョン2.1.9と互換性のないバージョン2.2.0を指定しているようです。