Maven Tutorial: Όλα όσα πρέπει να ξέρετε για να ξεκινήσετε

Αυτό το ιστολόγιο στο Maven φροντιστήριο καλύπτει όλα όσα πρέπει να γνωρίζετε για να ξεκινήσετε με το Maven για την κατασκευή των έργων σας.

Αντί να γράφετε μεγάλα σενάρια για την κατασκευή των έργων σας και να κατεβάζετε χειροκίνητα τις εξαρτήσεις, γιατί να μην χρησιμοποιήσετε το Maven και να απαλλαγείτε από αυτό το χάος. Αυτό το ιστολόγιο στο Maven tutorial θα καλύψει όλα όσα χρειάζεστε για να ξεκινήσετε τη χρήση του Maven για το έργο σας. Αφού κατανοήσετε διεξοδικά αυτό το σεμινάριο Maven, το επόμενο πιθανό βήμα θα είναι να μάθετε τον Jenkins που καλύπτει τη φάση συνεχούς ολοκλήρωσης .

Σε αυτό το ιστολόγιο στο Maven tutorial, θα καλύψουμε τα ακόλουθα θέματα:



  1. Γιατί χρειαζόμαστε το Maven;
  2. Τι είναι το Maven;
  3. Αρχιτεκτονική Maven
  4. Κύκλος ζωής, φάσεις και στόχοι Maven
  5. Πρόγραμμα επίδειξης.

Γιατί χρειαζόμαστε το Maven;

Εάν εργάζεστε σε έργα Java τότε τις περισσότερες φορές χρειάζεστε εξαρτήσεις. Οι εξαρτήσεις δεν είναι παρά βιβλιοθήκες ή αρχεία JAR. Πρέπει να τα κατεβάσετε και να τα προσθέσετε χειροκίνητα. Επίσης, η εργασία αναβάθμισης της στοίβας λογισμικού για το έργο σας έγινε χειροκίνητα πριν από το Maven. Επομένως, υπήρχε ανάγκη για ένα καλύτερο εργαλείο κατασκευής που θα χειριζόταν τέτοια θέματα.



Εκεί ο Maven έρχεται στην εικόνα. Το Maven μπορεί να λύσει όλα τα προβλήματά σας που σχετίζονται με εξαρτήσεις. Απλά πρέπει να καθορίσετε τις εξαρτήσεις και την έκδοση λογισμικού που θέλετε στο αρχείο pom.xml στο Maven και το Maven θα αναλάβει τα υπόλοιπα.Ας προσπαθήσουμε λοιπόν να καταλάβουμε τι ακριβώς είναι ο Maven.

Τι είναι το Maven;

Το έργο Maven αναπτύχθηκε από το Apache Software Foundation όπου ήταν προηγουμένως μέρος του έργου Τζακάρτα. Το Maven είναι ένα ισχυρό εργαλείο αυτοματοποίησης κατασκευής που χρησιμοποιείται κυρίως για έργα που βασίζονται σε Java. Το Maven σας βοηθά να αντιμετωπίσετε δύο κρίσιμες πτυχές της δημιουργίας λογισμικού -



  • Περιγράφει πώς δημιουργείται το λογισμικό
  • Περιγράφει τις εξαρτήσεις.

Ο Maven προτιμά τη σύμβαση έναντι της διαμόρφωσης. Το Maven κατεβάζει δυναμικά τις βιβλιοθήκες Java και τις προσθήκες Maven από ένα ή περισσότερα αποθετήρια, όπως το Maven Central Repository και τα αποθηκεύει σε μια τοπική προσωρινή μνήμη. Τα αντικείμενα των τοπικών έργων μπορούν επίσης να ενημερωθούν με αυτήν την τοπική προσωρινή μνήμη. Το Maven μπορεί επίσης να σας βοηθήσει να δημιουργήσετε και να διαχειριστείτε έργα γραμμένα σε C #, Ruby, Scala και σε άλλες γλώσσες.

Το αρχείο Project Object Model (POM) είναι ένα αρχείο XML που περιέχει πληροφορίες που σχετίζονται με το έργο και πληροφορίες διαμόρφωσης, όπως εξαρτήσεις, κατάλογο πηγής, plugin, στόχους κ.λπ. Όταν εκτελείτε μια εντολή maven, δίνετε στο maven ένα αρχείο POM για την εκτέλεση των εντολών. Ο Maven διαβάζει το αρχείο pom.xml για να ολοκληρώσει τη διαμόρφωση και τις λειτουργίες του.

Στόχοι Maven

Στόχοι Maven

Πότε πρέπει κάποιος να χρησιμοποιήσει το Maven;

    1. Εάν υπάρχουν πάρα πολλές εξαρτήσεις για το έργο.
    2. Όταν η έκδοση εξάρτησης ενημερώνεται συχνά.
    3. Οι συνεχείς κατασκευές, η ενσωμάτωση και οι δοκιμές μπορούν να αντιμετωπιστούν εύκολα χρησιμοποιώντας το maven.
    4. Όταν κάποιος χρειάζεται έναν εύκολο τρόπο δημιουργίας τεκμηρίωσης από τον πηγαίο κώδικα, μεταγλώττισης του πηγαίου κώδικα, συσκευασίας του μεταγλωττισμένου κώδικα σε αρχεία JAR ή αρχεία ZIP.

Αρχιτεκτονική Maven

Κύκλος ζωής, φάσεις και στόχοι Maven

1. Κύκλος ζωής Maven



Υπάρχει ένας συγκεκριμένος κύκλος ζωής που ακολουθεί ο Maven για την ανάπτυξη και τη διανομή του έργου-στόχου.

Υπάρχουν τρεις ενσωματωμένοι κύκλοι ζωής:

  • Προκαθορισμένο - Αυτός είναι ο κύριος κύκλος ζωής του Maven καθώς είναι υπεύθυνος για την ανάπτυξη έργου.
  • ΚΑΘΑΡΗ - Αυτός ο κύκλος ζωής χρησιμοποιείται για τον καθαρισμό του έργου και την κατάργηση όλων των αρχείων που δημιουργήθηκαν από την προηγούμενη έκδοση.
  • ιστοσελίδα - Ο στόχος αυτού του κύκλου ζωής είναι να δημιουργήσει την τεκμηρίωση του ιστότοπου του έργου.

Κάθε κύκλος ζωής αποτελείται από μια ακολουθία φάσεων. Ο προεπιλεγμένος κύκλος ζωής κατασκευής αποτελείται από 23 φάσεις, καθώς είναι ο κύριος κύκλος ζωής κατασκευής του Maven

Από την άλλη πλευρά, ο καθαρός κύκλος ζωής αποτελείται από 3 φάσεις, ενώ ο κύκλος ζωής στο χώρο αποτελείται από 4 φάσεις.

2. Φάσεις Maven

Μια φάση Maven δεν είναι παρά ένα στάδιο στον κύκλο ζωής του Maven. Κάθε φάση εκτελεί μια συγκεκριμένη εργασία.

Ακολουθούν μερικές σημαντικές φάσεις στον προεπιλεγμένο κύκλο ζωής κατασκευής -

  • επικυρώνω - Αυτή η φάση ελέγχει εάν είναι διαθέσιμες όλες οι απαραίτητες πληροφορίες για το build
  • συντάσσω - Αυτή η φάση καταρτίζει τον πηγαίο κώδικα
  • δοκιμή-μεταγλώττιση - Αυτή η φάση καταρτίζει τον πηγαίο κώδικα δοκιμής
  • δοκιμή - Αυτή η φάση εκτελεί δοκιμές μονάδας
  • πακέτο - Αυτά τα πακέτα φάσης συνέταξαν τον πηγαίο κώδικα στη διανεμήσιμη μορφή (βάζο, πόλεμος)
  • δοκιμή ολοκλήρωσης - Αυτή η φάση επεξεργάζεται και αναπτύσσει το πακέτο εάν χρειαστεί για να εκτελέσει δοκιμές ενοποίησης
  • εγκαθιστώ - Αυτή η φάση εγκαθιστά το πακέτο σε ένα τοπικό αποθετήριο
  • παρατάσσω - Αυτή η φάση αντιγράφει το πακέτο στο απομακρυσμένο αποθετήριο

Το Maven εκτελεί φάσεις με συγκεκριμένη σειρά. Αυτό σημαίνει ότι εάν εκτελέσουμε μια συγκεκριμένη φάση χρησιμοποιώντας την εντολή όπως το mvn, αυτό δεν θα εκτελέσει μόνο την καθορισμένη φάση αλλά και όλες τις προηγούμενες φάσεις.

Για παράδειγμα, εάν εκτελέσετε την εντολή mvn deploy, δηλαδή τη φάση ανάπτυξης που είναι η τελευταία φάση στον προεπιλεγμένο κύκλο ζωής κατασκευής, τότε αυτό θα εκτελέσει όλες τις φάσεις πριν από τη φάση ανάπτυξης.

3. Στόχοι Maven

Μια ακολουθία στόχων αποτελεί μια φάση και κάθε στόχος εκτελεί μια συγκεκριμένη εργασία. Όταν εκτελείτε μια φάση, τότε ο Maven εκτελεί όλους τους στόχους με μια σειρά που σχετίζονται με αυτήν τη φάση. Η σύνταξη που χρησιμοποιείται είναι plugin: goal. Μερικές από τις φάσεις και τους προεπιλεγμένους στόχους που τους συνδέονται είναι οι εξής:

  • compiler: compile - μεταγλώττιση φάση
  • μεταγλωττιστής: δοκιμή - φάση δοκιμής-μεταγλώττισης
  • surefire: δοκιμή - φάση δοκιμής
  • install: install - install phase
  • βάζο και πόλεμος: πόλεμος - φάση συσκευασίας

Το Maven plugin είναι μια ομάδα στόχων. Ωστόσο, αυτοί οι στόχοι δεν δεσμεύονται απαραίτητα στην ίδια φάση.Για παράδειγμα, το πρόσθετο Maven Failsafe που είναι υπεύθυνο για την εκτέλεση δοκιμών ενοποίησης. Για δοκιμή μονάδας, χρειάζεστε το πρόσθετο Maven surefire.

Πρόγραμμα επίδειξης

Σε αυτήν την ενότητα του Μέβεν φροντιστήριο, θα ρίξουμε μια ματιά σε ένα έργο επίδειξης. Για να δείξω πώς να φτιάξω ένα έργο χρησιμοποιώντας το Maven, έχω δημιουργήσει ένα Έργο Java μαζί με το TestNG χρησιμοποιώντας το Eclipse IDE. Αυτό είναι ένα πολύ απλό πρόγραμμα όπου έχω γράψει κώδικα για να δοκιμάσω τον τίτλο μιας ιστοσελίδας.

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

Έτσι, για αυτό το έργο χρειάζεστε , Maven και Eclipse που έχουν ληφθεί στο σύστημά σας. Οι εκδόσεις που χρησιμοποιώ στο σύστημά μου έχουν ως εξής -

  1. Εκλειψη - Έκδοση Enterprise έκδοση 4.12.0 (2019-06)
  2. Ιάβα - έκδοση 1.8.0_211
  3. Μέβεν - έκδοση 3.6.1
  • Εκτός από αυτό, πρέπει να κατεβάσετε το πρόσθετο TestNG για το Eclipse και μπορείτε να το κατεβάσετε ακολουθώντας τα παρακάτω βήματα -
    • Ανοίξτε το Eclipse και μεταβείτε στη Βοήθεια. Στη Βοήθεια, κάντε κλικ στο Eclipse marketplace.
    • Πληκτρολογήστε TestNG στο πλαίσιο Εύρεση και κάντε κλικ στο Go. Στα αποτελέσματα, θα δείτε το 'TestNG for Eclipse'. Πρέπει να το κατεβάσετε.
  • Αφού ρυθμίσετε το σύστημά σας με τα παραπάνω, είστε έτοιμοι να δημιουργήσετε ένα demo project χρησιμοποιώντας το Maven. Τώρα θα σας πω όλα τα βήματα που απαιτούνται για να το κάνετε αυτό.
    • Στο Eclipse, κάντε κλικ στο Αρχείο -> Νέο -> Maven Project.
    • Κάντε κλικ στο Δημιουργία ενός απλού έργου (παράλειψη επιλογής αρχέτυπου) και στη συνέχεια κάντε κλικ στο επόμενο.
  • Τώρα θα δείτε ένα παράθυρο με παραμέτρους όπως Group Id, Artifact Id και ούτω καθεξής.
    • Το αναγνωριστικό ομάδας είναι το μοναδικό αναγνωριστικό μιας ομάδας που κατέχει το έργο.
    • Το Artifact Id είναι το όνομα της τελικής μονάδας συλλογής.
    • Η έκδοση είναι η έκδοση του τεχνητού αντικειμένου. Το SNAPSHOT υποδεικνύει ότι η εργασία βρίσκεται σε εξέλιξη.
    • Η συσκευασία μπορεί να είναι βάζο, πόλεμος ή πομ, ανάλογα με το έργο σας. Για το έργο μας, θα επιλέξουμε βάζο. Στη συνέχεια, δώστε το όνομα του έργου σας.

  • Μόλις δημιουργήσετε το έργο τότε θα δείτε τη δομή του έργου σας στο Maven. Εδώ μπορείτε να δείτε τα ακόλουθα πράγματα -
    • pom.xml
    • src και στόχος
    • src / main / java
    • src / test / java
    • Εξαρτήσεις Maven
  • Τώρα δημιουργήστε ένα αρχείο τάξης στο src / main / test και ονομάστε το DemoClass. Αυτή η τάξη περιέχει τον κωδικό Selenium που χρησιμοποιούμε για δοκιμή. Τώρα έχουμε προσθέσει Selenium, TestNG εξαρτήσεις και Maven compiler και Surefire plugin στο αρχείο pom.xml. Ο κωδικός για DemoClass και pom.xml δίνεται παρακάτω:
package maven.selenium.testng εισαγωγή org.openqa.selenium.WebDriver import org.openqa.selenium.chrome.ChromeDriver import org.testng.annotations.Test public class DemoClass {@Test public void test () ρίχνει το InterruptException {// δήλωση και παρουσίαση αντικειμένων / μεταβλητών //System.setProperty('webdriver.gecko.driver','/home/edureka/Downloads/geckodriver ') // WebDriver driver = new FirefoxDriver () // σχολιάστε τις παραπάνω 2 γραμμές και αστεία κάτω από 2 γραμμές για χρήση του Chrome System.setProperty ('webdriver.chrome.driver', 'C: UsersArvind PhulareDesktopchromedriver.exe') Πρόγραμμα οδήγησης WebDriver = νέο ChromeDriver () String baseUrl = 'http://newtours.demoaut.com/' String waitingTitle = 'Welcome: Mercury Tours' String actualTitle = '' // ξεκινήστε το Fire fox και κατευθύνετέ το στο Base URL driver.get (baseUrl) // λάβετε την πραγματική τιμή του τίτλου sebenarnyaTitle = driver.getTitle () Thread.sleep (3000 ) / * * συγκρίνετε τον πραγματικό τίτλο της σελίδας με τον αναμενόμενο και εκτυπώστε * το αποτέλεσμα ως 'Επιτυχής' ή 'Αποτυχία' * / if (actualTitle.contentEquals (waitingTitle)) {System.out.println ('Test Passed!')} other {System.out.println ('Test Failed')} // κλείσιμο Fire fox driver.close ()}}
4.0.0 maven.selenium maven.selenium.testng 0.0.1-SNAPSHOT EdurekaDemo 2.53.1 6.9.10 org.apache.maven.plugins maven-compiler-plugin 1.8 1.8 org.apache.maven.plugins maven-surefire-plugin 2.18 .1 testng.xml org.seleniumhq.selenium selenium-java 3.141.59 org.testng testng 6.14.3 δοκιμή
  • Πριν από την εκτέλεση του έργου, πρέπει να μετατρέψουμε το αρχείο κλάσης DemoClass σε ένα αρχείο TestNG. Για να το κάνετε αυτό, κάντε δεξί κλικ στο DemoClass -> TestNG -> Μετατροπή σε TestNG.

    τι κάνει .trim στην Ιάβα
  • Τώρα για να εκτελέσετε το έργο, κάντε δεξί κλικ σε ένα έργο -> Εκτέλεση ως -> Maven clean. Αυτό θα καθαρίσει το έργο καταργώντας όλες τις προηγούμενες εκδόσεις.

  • Μετά το Maven clean, πρέπει να δοκιμάσετε το έργο αφού έχουμε γράψει τον κώδικα για τη δοκιμή της εφαρμογής ιστού. Κάντε δεξί κλικ στο έργο -> Run as -> Maven test. Αυτό θα ανοίξει τον ιστότοπο και θα ταιριάζει με τον τίτλο του ιστότοπου. Εάν ταιριάζει, τότε η δοκιμαστική μας υπόθεση θα περάσει.

  • Μπορούμε επίσης να εκτελέσουμε τις παραπάνω εντολές χρησιμοποιώντας μια γραμμή εντολών. Για αυτό, χρειαζόμαστε τη διαδρομή του αρχείου pom.xml.

    • Μπορείτε να λάβετε τη διαδρομή κάνοντας δεξί κλικ στο αρχείο pom.xml -> Ιδιότητες -> Τοποθεσία.
    • Αντιγράψτε τη διαδρομή και, στη συνέχεια, ανοίξτε μια γραμμή εντολών και επικολλήστε την χρησιμοποιώντας cd. cd C: / Χρήστες / Arvind Phulare / eclipse-workspace / maven.selenium.testng.
    • Μόλις το κάνετε αυτό, μπορείτε να πληκτρολογήσετε ξανά εντολές Maven, όπως mvn clean και mvn test.

Αυτό είναι από τη δική μου πλευρά σε αυτό το blog στο Maven tutorial. Ελπίζω να έχετε καταλάβει τα πράγματα που έχουμε συζητήσει σε αυτό το σεμινάριο Maven.

Τώρα που έχετε καταλάβει αυτό το σεμινάριο Maven, ρίξτε μια ματιά σε αυτό από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο. Το μάθημα Εκπαίδευσης Πιστοποίησης Edureka DevOps βοηθά τους μαθητές να κατανοήσουν τι είναι DevOps και να αποκτήσουν εμπειρία σε διάφορες διαδικασίες και εργαλεία DevOps, όπως Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack και GIT για την αυτοματοποίηση πολλαπλών βημάτων στο SDLC.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του σεμιναρίου Maven και θα επικοινωνήσουμε μαζί σας