Hướng dẫn về Maven: Tất cả những gì bạn cần biết để bắt đầu



Blog về hướng dẫn Maven này bao gồm mọi thứ bạn cần biết để bắt đầu với Maven để xây dựng các dự án của bạn.

Thay vì viết các tập lệnh dài để xây dựng các dự án của bạn và tải xuống thủ công các phụ thuộc, tại sao không sử dụng Maven và loại bỏ mớ hỗn độn này. Blog này về hướng dẫn Maven sẽ bao gồm mọi thứ bạn cần để bắt đầu sử dụng Maven cho dự án của mình. Sau khi hiểu kỹ hướng dẫn Maven này, bước có thể xảy ra tiếp theo sẽ là tìm hiểu Jenkins bao gồm giai đoạn Tích hợp liên tục của .

Trong blog này về hướng dẫn Maven, chúng tôi sẽ đề cập đến các chủ đề sau:

  1. Tại sao chúng ta cần Maven?
  2. Maven là gì?
  3. Kiến trúc Maven
  4. Vòng đời của Maven, các giai đoạn và mục tiêu
  5. Demo dự án.

Tại sao chúng ta cần Maven?

Nếu bạn đang làm việc trên các dự án Java thì hầu hết thời gian bạn cần các phụ thuộc. Sự phụ thuộc không là gì ngoài thư viện hoặc tệp JAR. Bạn cần tải xuống và thêm chúng theo cách thủ công. Ngoài ra, nhiệm vụ nâng cấp ngăn xếp phần mềm cho dự án của bạn đã được thực hiện thủ công trước Maven. Vì vậy, cần có một công cụ xây dựng tốt hơn để xử lý các vấn đề như vậy.





Đây là nơi Maven xuất hiện trong bức tranh. Maven có thể giải quyết tất cả các vấn đề của bạn liên quan đến phụ thuộc. Bạn chỉ cần chỉ định các phần phụ thuộc và phiên bản phần mềm mà bạn muốn trong tệp pom.xml trong Maven và Maven sẽ lo phần còn lại.Vì vậy, bây giờ chúng ta hãy cố gắng hiểu chính xác Maven là gì.

Maven là gì?

Dự án Maven được phát triển bởi Apache Software Foundation, nơi trước đây là một phần của dự án Jakarta. Maven là một công cụ tự động hóa xây dựng mạnh mẽ chủ yếu được sử dụng cho các dự án dựa trên Java. Maven giúp bạn giải quyết hai khía cạnh quan trọng của việc xây dựng phần mềm -



  • Nó mô tả cách phần mềm được xây dựng
  • Nó mô tả các phụ thuộc.

Maven thích quy ước hơn cấu hình. Maven tải xuống động các thư viện Java và trình cắm thêm của Maven từ một hoặc nhiều kho lưu trữ như Maven Central Repository và lưu trữ chúng trong bộ đệm ẩn cục bộ. Các thành phần của các dự án cục bộ cũng có thể được cập nhật bằng bộ nhớ cache cục bộ này. Maven cũng có thể giúp bạn xây dựng và quản lý các dự án được viết bằng C #, Ruby, Scala và các ngôn ngữ khác.

Tệp Mô hình Đối tượng Dự án (POM) là một tệp XML chứa thông tin liên quan đến dự án và thông tin cấu hình như các phụ thuộc, thư mục nguồn, plugin, mục tiêu, v.v. được Maven sử dụng để xây dựng dự án. Khi bạn thực hiện một lệnh maven, bạn cung cấp cho maven một tệp POM để thực hiện các lệnh. Maven đọc tệp pom.xml để hoàn thành cấu hình và hoạt động của nó.

cách đặt classpath trong java trong windows 10

Mục tiêu của Maven

Mục tiêu của Maven

Khi nào thì nên sử dụng Maven?

    1. Nếu có quá nhiều phụ thuộc cho dự án.
    2. Khi phiên bản phụ thuộc cập nhật thường xuyên.
    3. Có thể dễ dàng xử lý các bản dựng, tích hợp và thử nghiệm liên tục bằng cách sử dụng maven.
    4. Khi một người cần một cách dễ dàng để tạo tài liệu từ mã nguồn, biên dịch mã nguồn, đóng gói mã đã biên dịch thành tệp JAR hoặc tệp ZIP.

Kiến trúc Maven

Vòng đời của Maven, các giai đoạn và mục tiêu

1. Vòng đời của Maven



Có một vòng đời cụ thể mà Maven tuân theo để triển khai và phân phối dự án mục tiêu.

Có ba vòng đời tích hợp:

  • mặc định - Đây là vòng đời chính của Maven vì nó chịu trách nhiệm triển khai dự án.
  • dọn dẹp - Vòng đời này được sử dụng để làm sạch dự án và loại bỏ tất cả các tệp được tạo bởi bản dựng trước.
  • Địa điểm - Mục đích của vòng đời này là tạo tài liệu về địa điểm của dự án.

Mỗi vòng đời được tạo thành từ một chuỗi các giai đoạn. Vòng đời bản dựng mặc định bao gồm 23 giai đoạn vì nó là vòng đời bản dựng chính của Maven

Mặt khác, vòng đời sạch bao gồm 3 giai đoạn, trong khi vòng đời của trang web bao gồm 4 giai đoạn.

2. Giai đoạn Maven

overriding so với quá tải trong java

Giai đoạn Maven không là gì khác ngoài một giai đoạn trong vòng đời xây dựng Maven. Mỗi giai đoạn thực hiện một nhiệm vụ cụ thể.

Dưới đây là một số giai đoạn quan trọng trong vòng đời bản dựng mặc định -

  • xác nhận - Giai đoạn này kiểm tra xem tất cả thông tin cần thiết cho việc xây dựng có sẵn không
  • biên dịch - Giai đoạn này biên dịch mã nguồn
  • biên dịch thử nghiệm - Giai đoạn này biên dịch mã nguồn thử nghiệm
  • kiểm tra - Giai đoạn này chạy thử nghiệm đơn vị
  • gói hàng - Giai đoạn này gói mã nguồn đã biên dịch thành định dạng có thể phân phối (jar, war)
  • bài kiểm tra tích hợp - Giai đoạn này xử lý và triển khai gói nếu cần để chạy thử nghiệm tích hợp
  • Tải về - Giai đoạn này cài đặt gói vào kho lưu trữ cục bộ
  • triển khai - Giai đoạn này sao chép gói vào kho lưu trữ từ xa

Maven thực hiện các pha theo một thứ tự cụ thể. Điều này có nghĩa là nếu chúng ta chạy một giai đoạn cụ thể bằng lệnh như mvn, điều này sẽ không chỉ thực hiện giai đoạn được chỉ định mà còn cả các giai đoạn trước đó.

Ví dụ: nếu bạn chạy lệnh mvn deploy, nghĩa là giai đoạn triển khai là giai đoạn cuối cùng trong vòng đời xây dựng mặc định, thì điều này cũng sẽ thực thi tất cả các giai đoạn trước giai đoạn triển khai.

3. Mục tiêu Maven

Một chuỗi các mục tiêu tạo thành một giai đoạn và mỗi mục tiêu thực hiện một nhiệm vụ cụ thể. Khi bạn chạy một giai đoạn, thì Maven thực hiện tất cả các mục tiêu theo thứ tự liên quan đến giai đoạn đó. Cú pháp được sử dụng là plugin: goal. Một số giai đoạn và mục tiêu mặc định gắn liền với chúng như sau:

  • trình biên dịch: biên dịch - giai đoạn biên dịch
  • trình biên dịch: thử nghiệm - giai đoạn thử nghiệm-biên dịch
  • chắc chắn: thử nghiệm - giai đoạn thử nghiệm
  • install: cài đặt - giai đoạn cài đặt
  • jar and war: war - package phase

Một plugin Maven là một nhóm các mục tiêu. Tuy nhiên, các mục tiêu này không nhất thiết phải có cùng một giai đoạn.Ví dụ: plugin Maven Failsafe chịu trách nhiệm chạy các bài kiểm tra tích hợp. Để kiểm tra đơn vị, bạn cần plugin Maven surefire.

Dự án Demo

Trong phần này của Maven hướng dẫn, chúng ta sẽ có một cái nhìn về một dự án demo. Để chứng minh cách xây dựng một dự án bằng Maven, tôi đã tạo Dự án Java cùng với TestNG sử dụng Eclipse IDE. Đây là một chương trình rất đơn giản mà tôi đã viết mã để kiểm tra tiêu đề của một trang web.

Chương trình sẽ tự động khởi chạy trình duyệt web, điều hướng đến trang web được đề cập trong đoạn mã, tìm nạp tiêu đề của trang web đó và so sánh với tiêu đề mong đợi. Nếu tiêu đề thực tế và tiêu đề dự kiến ​​trùng khớp, thì trường hợp thử nghiệm vượt qua được, nó không thành công.

Vì vậy, đối với dự án này, bạn cần , Maven và Eclipse được tải xuống trên hệ thống của bạn. Các phiên bản mà tôi đang sử dụng trên hệ thống của mình như sau:

  1. Nhật thực - Phiên bản Enterprise Edition 4.12.0 (2019-06)
  2. Java - phiên bản 1.8.0_211
  3. Maven - phiên bản 3.6.1
  • Ngoài ra, bạn cần tải xuống plugin TestNG cho Eclipse và bạn có thể tải xuống bằng các bước sau:
    • Mở Eclipse và đi tới Trợ giúp. Trong Trợ giúp, hãy nhấp vào thị trường Eclipse.
    • Nhập TestNG vào hộp Tìm và nhấp vào Bắt đầu. Trong kết quả, bạn sẽ thấy “TestNG cho Eclipse”. Bạn cần tải xuống.
  • Sau khi bạn thiết lập hệ thống của mình với những điều đã đề cập ở trên, bạn đã sẵn sàng tạo một dự án demo bằng Maven. Vì vậy, bây giờ tôi sẽ cho bạn biết tất cả các bước cần thiết để làm điều này.
    • Trong Eclipse, nhấp vào Tệp -> Mới -> Dự án Maven.
    • Nhấp vào Tạo một dự án đơn giản (bỏ qua lựa chọn kiểu mẫu) và sau đó nhấp vào tiếp theo.
  • Bây giờ bạn sẽ thấy một cửa sổ với các tham số như Group Id, Artifact Id, v.v.
    • Id nhóm là Id duy nhất của một nhóm sở hữu dự án.
    • Id Artifact là tên của đơn vị biên dịch cuối cùng.
    • Phiên bản là phiên bản của tạo tác được tạo. SNAPSHOT cho biết công việc đang được tiến hành.
    • Bao bì có thể là lọ, war hoặc pom tùy thuộc vào dự án của bạn. Đối với dự án của chúng tôi, chúng tôi sẽ chọn jar. Sau đó đưa ra tên dự án của bạn.

  • Khi bạn tạo dự án thì bạn sẽ thấy cấu trúc dự án của dự án Maven của bạn. Ở đây bạn có thể thấy những điều sau:
    • pom.xml
    • src và target
    • src / main / java
    • src / test / java
    • Maven phụ thuộc
  • Bây giờ, tạo một tệp lớp trong src / main / test và đặt tên là DemoClass. Lớp này chứa mã Selenium mà chúng tôi đang sử dụng để thử nghiệm. Bây giờ chúng tôi đã thêm các phụ thuộc Selenium, TestNG và trình biên dịch Maven và plugin Surefire vào tệp pom.xml. Mã cho DemoClass và pom.xml được cung cấp bên dưới:
package maven.selenium.testng import org.openqa.selenium.WebDriver import org.openqa.selenium.chrome.ChromeDriver import org.testng.annotations.Test public class DemoClass {@Test public void test () throws InterruptException {// khai báo và tạo đối tượng / biến //System.setProperty('webdriver.gecko.driver','/home/edureka/Downloads/geckodriver ') // Trình điều khiển WebDriver = new FirefoxDriver () // nhận xét 2 dòng trên và bỏ ghi chú bên dưới 2 các dòng sử dụng Chrome System.setProperty ('webdriver.chrome.driver', 'C: UsersArvind PhulareDesktopchromedriver.exe') Trình điều khiển WebDriver = new ChromeDriver () String baseUrl = 'http://newtours.demoaut.com/' String mongTitle = 'Chào mừng: Mercury Tours' String realityTitle = '' // khởi chạy Cáo lửa và hướng nó đến URL cơ sở driver.get (baseUrl) // lấy giá trị thực của tiêu đề realTitle = driver.getTitle () Thread.sleep (3000 ) / * * so sánh tiêu đề thực của trang với tiêu đề mong đợi và in ra * kết quả là 'Đạt' hoặc 'Không đạt' * / if (factTitle.contentEquals (mong đợi)) {System.out.println ('Test Passed!')} else {System.out.println ('Test Failed')} // đóng 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 kiểm tra
  • Trước khi chạy dự án, chúng ta cần chuyển đổi tệp lớp DemoClass thành tệp TestNG. Để làm điều đó, hãy nhấp chuột phải vào DemoClass -> TestNG -> Chuyển đổi sang TestNG.

  • Bây giờ để chạy dự án, nhấp chuột phải vào dự án -> Chạy với tư cách -> Maven sạch. Thao tác này sẽ xóa dự án bằng cách xóa tất cả các bản dựng trước đó.

  • Sau khi làm sạch Maven, bạn cần kiểm tra dự án vì chúng tôi đã viết mã để kiểm tra ứng dụng web. Vì vậy, nhấp chuột phải vào dự án -> Chạy dưới dạng -> Kiểm tra Maven. Thao tác này sẽ mở trang web và khớp với tiêu đề của trang web. Nếu nó khớp thì trường hợp thử nghiệm của chúng tôi sẽ vượt qua.

    cách trộn dữ liệu trong hoạt cảnh
  • Chúng ta cũng có thể thực hiện các lệnh trên bằng dấu nhắc lệnh. Để làm được điều đó, chúng ta cần đường dẫn của tệp pom.xml.

    • Bạn có thể lấy đường dẫn bằng cách nhấp chuột phải vào tệp pom.xml -> Thuộc tính -> Vị trí.
    • Sao chép đường dẫn, sau đó mở dấu nhắc lệnh và dán vào đó bằng cd. cd C: / Users / Arvind Phulare / eclipse-workspace / maven.selenium.testng.
    • Sau khi thực hiện việc này, bạn có thể gõ lại các lệnh Maven như mvn clean và mvn test.

Vì vậy, đây là nó từ phía tôi trong blog này về hướng dẫn Maven. Tôi hy vọng bạn đã hiểu những điều mà chúng tôi đã thảo luận trong hướng dẫn Maven này.

Bây giờ bạn đã hiểu hướng dẫn Maven này, hãy xem phần này của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Khóa đào tạo Chứng chỉ Edureka DevOps giúp người học hiểu DevOps là gì và có được kiến ​​thức chuyên môn về các quy trình và công cụ DevOps khác nhau như Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack và GIT để tự động hóa nhiều bước trong SDLC.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của hướng dẫn Maven này và chúng tôi sẽ liên hệ lại với bạn