Maven - Spring Boot Starter sürümü

Sep 26 2020

İlkbahar önyükleme başlatıcılarının sürümleri konusunda uzman değilim ve sorunla karşılaştım. Projemi bu bahar önyükleme başlatıcısıyla oluşturmaya çalışıyorum . Ve bu jar dosyasının açıklamasında belirtildiği gibi gömülü kitaplıklar sürümünün 5.2.0 olmasına ihtiyacım var. Ancak bu bağımlılığı projeme eklediğimde, gömülü kitaplık sürümlerinin beklediğimden farklı olduğunu gördüm. Maven eklentilerim 5.1.6 sürümlerinin ve kodumun derlenmediğini gösteriyor çünkü bazı sınıflar 5.2.0 modülündeki yöntemlere bağlı.

Ve bir şey daha var. Başka bir projede aynı bağımlılığı ekledim. Ama sorun değil, sürümler maven deposundaki açıklamalarla aynı. Bu iki proje arasında fark var. Bunlardan biri yaylı sürüm 2.1.9 (derlenmeyen) ve diğeri - 2.3.4 (iyi çalışıyor). Ve pom'daki artefactId aracılığıyla başlangıç ​​kitaplıklarını içeren sürümleri kontrol ettiğimde - bunlar iyi ve 5.2.0.

Burada 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>

Tüm maven bağımlılıkları ile m2 repo'yu silmeyi ve sonra tekrar indirmeyi denedim ama hala sorun yaşıyorum. Pom.xml dosyasında bir hata mı yaptım? Belki IntelliJ'imde bir sorun var mı?

Pom'da bağımlılık sürümleri

Eklentide yanlış sürümler

Eklentide doğru sürümler

Yanıtlar

2 gtiwari333 Sep 26 2020 at 02:38

Spring Boot, birbirleriyle uyumlu olduklarından emin olabilmemiz için çeşitli bağımlılık sürümlerini yönetir.

Spring Boot 2.3.4.RELEASE tarafından hangi bağımlılık sürümünün yönetildiğini görmek için bu pom.xml dosyasına bakın. Sürüm numarasını değiştirebilir ve o sürümdeki yönetilen bağımlılıkları görebilirsiniz.

https://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/2.3.4.RELEASE/spring-boot-dependencies-2.3.4.RELEASE.pom

Faydaları:

  • Bağımlılık listesinin dışında bir bağımlılık kullanmak istiyorsanız, pom.xml dosyanızın içindeki sürümü belirtmenize gerek yoktur. Veya bu bağımlılık için resmi bir ilkbahar başlatıcısı olup olmadığını kontrol edin. Varsa, yay önyükleme başlatıcı bağımlılığını kullanın. Yine versiyonu belirtmeye gerek yok.
  • Spring, diğer tüm kitaplıklarla iyi çalışan bağımlılığı çekecek, böylece uyumluluk (çalışma zamanı veya derleme zamanı) hatası almayacaksınız.
  • Spring boot sürümünü yükselttiğinizde, tüm yönetilen bağımlılıklar güncellenecektir. Ayrıca uyumluluk da korunur.

Sorununuzu nasıl çözersiniz:

Pom.xml dosyanızda, için sürümü belirtmenize gerek yoktur spring-boot-starter-oauth2-resource-server. Bu kütüphane, yay önyüklemesi ile yönetilir. Görünüşe göre, ilkbahar önyükleme sürüm 2.1.9 ile uyumlu olmayan 2.2.0 sürümünü belirtiyorsunuz.