Kirjastoristiriitojen tarkistaminen Mavenissa
Julkaisupäivä:20. tammikuuta 2021.
INFOMARTION > Kirjastoristiriitojen tarkistaminen Mavenissa
Yleiskatsaus.
Kirjastoristiriitojen tarkistaminen Mavenissa. Maven ratkaisee jar-kirjaston riippuvuudet automaattisesti, mutta oletusasetukset eivät ilmoita ristiriidoista. Näin tarkistat kirjastoristiriidat Mavenissa tällaisissa tapauksissa.
Sisällysluettelo
1. Kun Mavenissa esiintyy kirjastoristiriitoja
Maven ratkaisee Java-kirjastoriippuvuudet automaattisesti. Automaattinen riippuvuusratkaisu tarkoittaa, että jos sinulla on Jar-tiedosto, jota tarvitset, se hakee automaattisesti Jar-tiedoston, jota tarvitaan kyseisen Jar-tiedoston suorittamiseen. Lisätietoja siitä, miten kirjastokohtaisten riippuvuuksien ratkaiseminen toimii, on seuraavassa artikkelissa.
Miten Maven ratkaisee automaattisesti jar-kirjastojen riippuvuudet.
Kirjastoristiriitoja ei kuitenkaan ratkaista automaattisesti. Jos asetuksia ei ole käytössä, et voi edes havaita ristiriitaa. Haluamme kuvata, miten kirjastojen ristiriidat voidaan tarkistaa.
2. Kuinka tarkistaa
Kirjastoristiriitojen tarkistamiseen on kaksi päätapaa
- Lisäosien esittely
- Rakentamista edeltävä vahvistus komennolla.
'Asenna lisäosat' on tapa lisätä asetuksia pom.xml-tiedostoon. 'Tarkista komennolla ennen rakentamista' tarkoittaa kirjaimellisesti manuaalista tarkistamista komennolla ennen rakentamista. Haluaisin selittää, miten tämä tehdään erityisesti.
2-1. Lisäosien esittely
Seuraavista Maven-sivustoista voi olla apua.
http://maven.apache.org/enforcer/enforcer-rules/dependencyConvergence.html
Lisää seuraavat asetukset pom.xml-tiedostoon.
<project>
...
<build>
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M3</version>
<executions>
<execution>
<id>enforce</id>
<configuration>
<rules>
<dependencyConvergence/>
</rules>
</configuration>
<goals>
<goal>enforce</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
</build>
...
</project>
Jos edellä mainitut asetukset on asetettu, seuraava virheilmoitus tulee, ja rakentaminen epäonnistuu, jos rakentamishetkellä on kirjastoristiriitoja.
[WARNING]
Dependency convergence error for org.apache.commons:commons-collections4:4.1 paths to dependency are:
+-com.example.todo:todo-web:1.0.0-SNAPSHOT
+-org.apache.poi:poi:3.17
+-org.apache.commons:commons-collections4:4.1
and
+-com.example.todo:todo-web:1.0.0-SNAPSHOT
+-org.apache.commons:commons-collections4:4.0
[WARNING] Rule 0: org.apache.maven.plugins.enforcer.DependencyConvergence failed with message:
Failed while enforcing releasability. See above detailed error message.
Jos buildia käytetään ilman lisäosia, virheitä ei esiinny ja build päättyy normaalisti. Jos haluat havaita ristiriidat, varmista, että tämä on määritetty.
2-2. Rakentamista edeltävä vahvistus komennolla.
Riippuvuudet tarkistetaan seuraavien komentojen avulla
mvn dependency:tree -Dverbose
komento, ja jos ristiriita on olemassa, näyttöön tulee teksti "ei ristiriitaa". On myös mahdollista rajata tulosteet vain niihin alueisiin, joissa on ristiriitoja, kuten seuraavassa komennossa. ※'find' on Windowsin komento. Linuxissa tämä on 'grep'.
mvn dependency:tree -Dverbose | find "omitted for conflict"
Kirjastoristiriidat voidaan tarkistaa tarkastelemalla edellä mainittujen komentojen tuloksia.
3. yhteenveto
Jos haluat havaita kirjastoristiriidat luotettavasti, suosittelemme 'Asenna lisäosia'. Lisäosien käyttöönotolla varmistetaan, että mahdolliset ristiriidat huomataan, koska rakentaminen epäonnistuu.
Kiitos, että katsoitte loppuun asti.
■INFORMATION
Klikkaa tästä siirtyäksesi TIETOJEN yläsivulle.
■PROFILE
Klikkaa tästä saadaksesi profiilin.
■Yhteystiedot.