Πώς το Maven επιλύει μεταβιβασμένες εξαρτήσεις από αποθετήρια
Δημοσιεύτηκε:
Ενημερώθηκε:
Άρθρα › Πώς το Maven επιλύει μεταβιβασμένες εξαρτήσεις από αποθετήρια
Κατάσταση το 2026 και ασφαλής χρήση
Συμπέρασμα: Το Maven δεν εντοπίζει αρχεία JAR μόνο από το όνομά τους. Επιλύει τις δηλωμένες συντεταγμένες, κατεβάζει το POM του artifact, ακολουθεί τις εξαρτήσεις που περιγράφονται εκεί, εφαρμόζει τους κανόνες scope και optional και επιλέγει έκδοση όταν διαφορετικές διαδρομές ζητούν διαφορετικές εκδόσεις.
Τι θα μάθετε
- Πώς συμμετέχουν στην επίλυση το τοπικό και το κεντρικό αποθετήριο, καθώς και τα mirror και τα ιδιωτικά αποθετήρια.
- Γιατί το POM μιας εξάρτησης, και όχι το ίδιο το JAR, περιγράφει τις περισσότερες μεταβατικές εξαρτήσεις.
- Πώς να ελέγξετε το πραγματικό γράφημα εξαρτήσεων πριν παρακάμψετε μια έκδοση.
Σε ποιους απευθύνεται: Σε χρήστες του Maven που θέλουν να κατανοήσουν από πού προέρχονται τα ληφθέντα artifacts και γιατί εμφανίζονται πρόσθετες βιβλιοθήκες.
Ισχύει το 2026: Οι παλαιότερες συντεταγμένες του Apache POI παρακάτω είναι ιστορικό παράδειγμα και όχι πρόταση έκδοσης. Χρησιμοποιήστε υποστηριζόμενες εξαρτήσεις και αξιόπιστα αποθετήρια HTTPS, επαληθεύστε checksum ή υπογραφή όπου διατίθενται και εφαρμόστε πολιτική ενημέρωσης εξαρτήσεων.
Σημείωση ασφαλείας: Οι εντολές και τα παραδείγματα ρυθμίσεων του αρχικού άρθρου δεν έχουν εκτελεστεί ξανά σε σύγχρονο περιβάλλον παραγωγής. Πριν από την εφαρμογή, ελέγξτε τις υποστηριζόμενες εκδόσεις, δημιουργήστε αντίγραφα ασφαλείας και προετοιμάστε σχέδιο επαναφοράς σε ξεχωριστό περιβάλλον δοκιμών.
Επίσημες πηγές
Επισκόπηση
Το Maven κατεβάζει αυτόματα αρχεία JAR από το διαδίκτυο, αλλά στη συνέχεια εξηγείται πώς ακριβώς λειτουργεί.
Η προϋπόθεση αυτού του άρθρου είναι ότι πρέπει να καταλάβετε τι είναι το Maven, οπότε αν δεν είστε εξοικειωμένοι με το ίδιο το Maven, θα πρέπει επίσης να ανατρέξετε στο ακόλουθο άρθρο.
Τι είναι το Maven και τι κάνει το Maven;
Περιεχόμενα
1. Η ικανότητα του Maven να επιλύει εξαρτήσεις βιβλιοθηκών JAR.
Το Maven μπορεί να ανακτήσει αυτόματα τα αρχεία JAR απλά ορίζοντας τα απαιτούμενα αρχεία JAR στο αρχείο pom.xml. Επίσης, μαθαίνει αυτόματα τα μεταβατικές εξαρτήσεις που απαιτούνται για την εκτέλεση αυτού του αρχείου JAR. Στη συνέχεια εξηγείται πώς λειτουργεί.
1-1. Τι να συμπεριλάβετε στο αρχείο pom.xml.
Πρώτον, για την επίλυση της εξάρτησης της βιβλιοθήκης jar, παρέχονται πληροφορίες στο αρχείο pom.xml. Το Maven επεξεργάζεται τις πληροφορίες από το αρχείο pom.xml. Αν απαιτείται το "poi-3.17.jar", για παράδειγμα, περιγράφεται στο pom.xml ως εξής. (Παρεμπιπτόντως, το 'poi-3.17.jar' είναι ένα jar που χρησιμοποιείται για την επεξεργασία αρχείων του Microsoft Office, όπως το Excel).
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
Αναφέροντας απλώς τα παραπάνω θα κατεβάσετε το "poi-3.17.jar" από το Διαδίκτυο και θα κατεβάσετε επίσης το εξαρτώμενο αρχείο JAR από το Διαδίκτυο που απαιτείται για την εκτέλεση του "poi-3.17.jar".
1-2. Πώς λαμβάνονται από το διαδίκτυο;
Μια απλή εξήγηση του συστήματος παρουσιάζεται στο παρακάτω διάγραμμα.
Λήψη από αποθετήρια Maven που είναι διαθέσιμα στο Διαδίκτυο. Εάν δεν έχει οριστεί τίποτα, η προεπιλεγμένη τιμή είναι Κεντρικό αποθετήριο. Η διεύθυνση URL έχει ως εξής.
https://repo1.maven.org/maven2/
Ανατρέξτε στον ακόλουθο δικτυακό τόπο για έναν κατάλογο αποθετηρίων που είναι διαθέσιμα στο διαδίκτυο, αν ενδιαφέρεστε.
https://mvnrepository.com/repos
Την πρώτη φορά, το jar ανακτάται από ένα εξωτερικό αποθετήριο, αλλά αντιγράφεται στο τοπικό αποθετήριο και δεν ανακτάται από τη δεύτερη φορά και μετά. Η τοποθεσία του τοπικού αποθετηρίου είναι "C:\Users\user\.m2".
Αν θέλετε να αλλάξετε τον προορισμό από την προεπιλεγμένη τιμή, μπορείτε επίσης να αλλάξετε τον προορισμό συμπεριλαμβάνοντας την ακόλουθη ετικέτα αποθετηρίου στο pom.xml.
<repositories>
<repository>
<id>sonatype-nexus-snapshots</id>
<name>Sonatype Nexus Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
</snapshots>
</repository>
</repositories>
1-3. Μηχανισμοί επίλυσης των εξαρτήσεων του αρχείου JAR που πρόκειται να αποκτηθεί.
Μόλις περιγράψαμε ένα παράδειγμα απόκτησης του 'poi-3.17.jar', αλλά το 'poi-3.17.jar' απαιτεί το 'commons-collections4-4.1.jar' για να εκτελεστεί. Αυτό σημαίνει ότι το 'poi-3.17.jar' εξαρτάται από το 'commons-collections4-4.1.jar'. Ο μηχανισμός για την επίλυση αυτής της εξάρτησης μπορεί να βρεθεί στο αποθετήριο Maven όπου είναι αποθηκευμένο το 'poi-3.17.jar'. Η διεύθυνση URL έχει ως εξής.
https://repo1.maven.org/maven2/org/apache/poi/poi/3.17/
Νομίζω ότι το "poi-3.17.pom" είναι αποθηκευμένο, και σε αυτό το αρχείο θα βρείτε πληροφορίες ότι το "poi-3.17.jar" εξαρτάται από το "commons-collections4-4.1.jar". Αυτό σημαίνει ότι κατά την ανάκτηση του αρχείου 'poi-3.17.jar', το σύστημα δεν ανακτά μόνο το αρχείο JAR, αλλά και το αρχείο pom και ελέγχει για άλλα απαραίτητα αρχεία JAR.
2. περίληψη
Ο μηχανισμός του Maven για την επίλυση των εξαρτήσεων σε βιβλιοθήκες jar είναι ότι οι εξαρτήσεις ορίζονται στο αρχείο pom όπου αποθηκεύονται τα αρχεία JAR που πρόκειται να ανακτηθούν.
Αυτά είναι τα βασικά βήματα και οι περιορισμοί που πρέπει να ληφθούν υπόψη.
■Άρθρα
■Προφίλ
■Επικοινωνία
