Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa · Oppitunti

Versioristiriitojen ja riippuvuusrajoitteiden ratkaiseminen

Tunnista ja korjaa riippuvuuksien versioristiriidat dependency reportin, ratkaisustrategioiden, rajoitteiden ja pakotettujen versioiden avulla.

Oppitunti 4/413 vaihetta

Versioristiriitojen ja riippuvuusrajoitteiden ratkaiseminen on ilmainen Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-kurssilla on yhteensä 4 oppituntia.

Ristiriitaongelma

Kaksi käyttämäänne kirjastoa saattaa kumpikin tuoda mukanaan saman transitiivisen riippuvuuden eri version. Gradlen on valittava niistä yksi — ja väärä valinta aiheuttaa ajonaikaisia virheitä. Tämän hallinta on keskeinen taito.

Oletus: uusin voittaa

Oletuksena Gradle ratkaisee ristiriidan valitsemalla riippuvuuden riippuvuusgraafissa pyydetyistä versioista korkeimman. Tämä on yleensä turvallista, mutta ei aina.

Riippuvuuspuun tarkasteleminen

dependencies-tehtävä tulostaa koko ratkaistun graafin ja näyttää, mikä versio voitti ja miksi.

gradle dependencies --configuration runtimeClasspath

Yhden riippuvuuden selittäminen

dependencyInsight-tehtävä selittää tarkasti, miten yksi riippuvuus ratkaistiin ja kuka pyysi kutakin versiota.

gradle dependencyInsight --dependency guava

Version pakottaminen

Voitte pakottaa tietyn version ohittamaan ristiriidanratkaisun käyttämällä ratkaisustrategiaa.

configurations.all {
    resolutionStrategy {
        force 'com.google.guava:guava:32.1.3-jre'
    }
}

Riippuvuusrajoitteet

Moderni lähestymistapa käyttää constraints-määrityksiä sallitun version ilmoittamiseen lisäämättä riippuvuutta suoraan — tämä on siistimpi ratkaisu kuin pakottaminen.

dependencies {
    constraints {
        implementation 'com.google.guava:guava:32.1.3-jre'
    }
}

Transitiivisten riippuvuuksien poissulkeminen

Joskus transitiivista riippuvuutta ei haluta lainkaan. Sulkekaa se pois sitä tuovasta riippuvuudesta.

implementation('org.example:lib:1.0') {
    exclude group: 'commons-logging'
}

Virheellisten versioiden hylkääminen

Ratkaisustrategia voi hylätä tunnetusti rikkinäiset versiot, jotta Gradle ei koskaan valitse niitä.

resolutionStrategy {
    componentSelection {
        all { if (candidate.version == '1.2.0') reject('known bug') }
    }
}

Koonnin epäonnistuminen ristiriidassa

Tiukan toistettavuuden varmistamiseksi Gradlen voi määrittää epäonnistumaan aina, kun versioristiriita ilmenee. Näin ristiriita on ratkaistava nimenomaisesti.

resolutionStrategy { failOnVersionConflict() }

Riippuvuuksien lukitseminen

Riippuvuuksien lukitseminen kirjoittaa ratkaistut versiot lock-tiedostoon, jotta koonnit ovat täysin toistettavissa eri koneilla ja eri ajankohtina.

gradle dependencies --write-locks

Alustat ja BOM-tiedostot

Tuokaa julkaistu BOM-tiedosto platform-merkinnällä, jotta useat toisiinsa liittyvät riippuvuudet voidaan kohdistaa yhteen testattuun versiokokonaisuuteen ilman versioiden manuaalista hallintaa.

dependencies {
    implementation platform('org.springframework.boot:spring-boot-dependencies:3.2.0')
    implementation 'org.springframework.boot:spring-boot-starter-web'
}

Pikatarkistus

Testatkaa tietonne ristiriitojen ratkaisemisesta.

Kertaus

Opitte hallitsemaan versioristiriitoja:

  • Oletusratkaisu valitsee korkeimman version
  • Tarkastelkaa riippuvuuksia komennoilla dependencies ja dependencyInsight
  • Ohittakaa oletus komennolla force tai mieluiten constraints-määrityksillä
  • exclude poistaa ei-toivotut transitiiviset riippuvuudet; hylkäys estää virheelliset versiot
  • Riippuvuuksien lukitseminen tekee koonneista toistettavia
Aloita maksutta

Opi Groovy tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Versioristiriitojen ja riippuvuusrajoitteiden ratkaiseminen” ilmainen?

Kyllä – oppitunnin ”Versioristiriitojen ja riippuvuusrajoitteiden ratkaiseminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-kurssin, päivitä CoddyKit PROhon. Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Versioristiriitojen ja riippuvuusrajoitteiden ratkaiseminen”?

Tunnista ja korjaa riippuvuuksien versioristiriidat dependency reportin, ratkaisustrategioiden, rajoitteiden ja pakotettujen versioiden avulla. Harjoittelet Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Versioristiriitojen ja riippuvuusrajoitteiden ratkaiseminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-oppitunnilla?

Kyllä. Jokainen Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Projektiriippuvuuksien ilmoittaminen
  2. Riippuvuuksien ratkaisu ja välimuisti
  3. Mukautetut repositoriot ja BOM:t
  4. Versioristiriitojen ja riippuvuusrajoitteiden ratkaiseminen
← Takaisin: Groovy ja Gradle: JVM-automaatiota ja koontien hallintaa