Πώς το Maven επιλύει αυτόματα τις εξαρτήσεις βιβλιοθηκών jar.


Ημερομηνία δημοσίευσης:17 Ιανουαρίου 2021.



INFOMARTION > Πώς το Maven επιλύει αυτόματα τις εξαρτήσεις βιβλιοθηκών jar.

Επισκόπηση.

Το Maven κατεβάζει αυτόματα βάζα από το διαδίκτυο, αλλά θα ήθελα να εξηγήσω πώς ακριβώς λειτουργεί.

Η προϋπόθεση αυτού του άρθρου είναι ότι πρέπει να καταλάβετε τι είναι το Maven, οπότε αν δεν είστε εξοικειωμένοι με το ίδιο το Maven, θα πρέπει επίσης να ανατρέξετε στο ακόλουθο άρθρο.

Τι είναι το Maven και τι κάνει το Maven;

Πίνακας περιεχομένων

  1. Η ικανότητα του Maven να επιλύει εξαρτήσεις βιβλιοθηκών jar.
  2. περίληψη

1. Η ικανότητα του Maven να επιλύει εξαρτήσεις βιβλιοθηκών jar.

Το Maven μπορεί να ανακτήσει αυτόματα τα αρχεία jar απλά ορίζοντας τα απαιτούμενα αρχεία jar στο αρχείο pom.xml. Επίσης, μαθαίνει αυτόματα τα εξαρτώμενα jars που απαιτούνται για την εκτέλεση αυτού του 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.)

pom.xml


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

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. Μηχανισμοί επίλυσης των εξαρτήσεων του βάζου που πρόκειται να αποκτηθεί.

Μόλις περιγράψαμε ένα παράδειγμα απόκτησης του '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 που πρόκειται να ανακτηθούν.

Σας ευχαριστούμε που παρακολουθήσατε μέχρι το τέλος.