Thao Tác Với Apache Maven Trong Java Thế Nào?
Xin chào các bạn, bài viết hôm nay mình sẽ giới thiệu về các tính năng của maven trong Java và hướng dẫn chi tiết cách cài đặt, khởi tạo chi tiết một project Maven như thế nào
Apache Maven là gì?
Apache maven là một chương trình quản lý dự án cho phép các developers có thể quản lý về version, các dependencies ( các thư viện sử dụng trong dự án ) quản lý build, tự động download javadoc & source, …
- Quản lý thư viện cho cả dự án, quản lý version, bản phân phối
- Thiết lập tự động các quá trình validate, test, đóng gói, cài đặt, triển khai dự án…
Vì sao phải sử dụng maven? Bạn hãy thử tượng nếu dự án của chúng ta sử dụng rất nhiều thư viên thứ 3 như là testing, selenium, hibernate, spring, struts … Việc import thư viện và các công cụ là rất vất vả, chưa kể đến việc version của các thư viện có thể conflig với nhau, việc import đầy đủ cácthư viện là cả một vấn đề. VD như bạn muốn sử dụng struts, thì điều bắt buộc là chúng ta phải import cả thư viện servlet .
Maven dùng để làm gì?
Mục tiêu chính của Maven là cung cấp cho người dung (hay nhà phát triển) những điều sau:
- Cung cấp một dự án (project) toàn diện cho các dự án, giúp nó có thể tái sử dụng, bảo trì và dễ hiểu hơn.
- Cung cấp các plugins hoặc công cụ tương tác với dự án (project) này.
Các plugin hoặc công cụ tương tác sẽ nằm gọn trong một file có tên gọi là pom.xml
Repository là gì?
Là một kho chứa các dependencies ( các thư viện sử dụng trong dự án ). Khi thực hiện build project sử dụng Maven, thì các thư viện được khai báo trong file pom.xml sẽ được download tự động tại kho chứa này: https://maven.apache.org/guides/introduction/introduction-to-repositories.html
Tạo Project và sử dụng Maven như thế nào?
Đầu tiên điều quan trọng nhất là bạn phải cài đặt được môi trường của Java, sử dụng trình IDE hợp lí để build project (VD: Eclipse, Netbean … )
Apache maven hiện nay đã được tích hợp sẵn vào trong eclipse . Sau đây là hướng dẫn cách tạo một project sử dụng maven.
Bước 1: File -> New -> Project. Trong dialog hiện ra, lựa chọn “Maven Project” như trong hình, chọn Next.
Bước 2: Tại “New Maven Project”, lựa chọn “Create a simple project …”, sau đó chọn Next.
Bước 3: Điền thông tin cho project
Trong đó :
- Group Id: Tên tổ chức / công ty / cá nhân của dự án
- Artifact Id: Tên của packge, dự án
- Version: version của project
- Package: Chọn “jar” có nghĩa là thư viện or java application, “war” là web application
- Name: Tên project (trong eclipse)
Nhấn Finish để hoàn thành. Chúng ta được một project Maven như dưới đây
Cấu hình file pom:
File pom.xml
là nơi khai báo tất cả những gì liên quan đến dự án được cấu hình qua maven, như khai báo các dependency, version của dự án, tên dự án, repossitory … Mở file pom.xml ra, chúng ta thấy nội dung như sau:
Trong đó, “0.0.1-SNAPSHOT” là version của project. Bây giờ chúng ta sẽ thử add thư viện vào dự án, ví dụ chúng ta sẽ add thư viện Selenium và Testng để phục vụ cho mục đích của project. Thêm thẻ khai báo vào file pom
Cặp thẻ <dependencies> /<dependencies> là cặp thẻ cha, chúng ta sẽ khai báo các thư viện con bên trong cặp thẻ này.
Như ở trên hình chúng ta thấy chúng ta sẽ khai báo các thư viện bên trong cặp thẻ <dependency> /<dependency> với các thông tin bao gồm tên thư viện và version của thư viện.
Sau khi khai báo thư viện xong, chúng ta thực hiện build project bằng cách:
Click phải chuột vào Project → Chọn Run As → Chọn Run Configuration:
Tại mục Goals: điền các command, mỗi command cách nhau một khoảng trắng, sau đó click Run để chạy maven.
- clean: Clean lần build trước đó
- install: Download các thư viện được khai báo trong file pom
Thư viện sẽ được add tự động vào project : (ở mục Maven Dependencies) sau khi build xong được kết quả:
Trong ví dụ trên, ngoài 2 thư viện được khai báo trong file pom, Maven cũng sẽ tự động download các thư viện cần thiết khác để có thể sử dụng selenium core, bởi vì selenium được xây dựng (or sử dụng lại) các thư viện này. Nếu không có maven, thì việc các bạn phải đi add từng thư viện liên quan như thế này sẽ rất mất thời gian, chưa kể là sẽ có sai sót cũng như là version phù hợp. Tuy nhiên với Maven thì vấn đề trên đã được giải quyết.“Các thư viện download về sẽ nằm ở thư mục home/{username}/.m2/repository."
Thay đổi version của thư viện
Bây giờ khi thư viện của chúng ta cần được nâng cấp version, sếp muốn bạn nâng cấp version của selenium từ 3.12.0 lên thành 3.14.0. Chúng ta chỉ cần config lại file pom như sau:
Sau khi build project xong, Maven sẽ tự động remove các thư viện selenium version cũ và thực hiện download nhưng thư viện selenium version mới.
Nhờ có Maven chúng ta có thể tạo nên một project hoàn chỉnh với việc thêm hay update thư viện một cách dễ dàng.
Kho chứa Maven Repository có gì?
Chúng ta có thể dễ dàng tìm thấy được thông tin các thư viện chúng ta trong kho chứa maven Repository
Ví dụ: Mình muốn tìm kiếm thông tin về thư viện selenium
Chỉ cần lấy thông tin đoạn code của thư viện này và cấu hình trong file POM, run project là thư viện sẽ được tự động download về.
Tạm kết
Cảm ơn các bạn đã theo dõi bài viết, mong rẳng thông qua bài viết này có thể giúp các bạn hiểu thêm về Apache Maven và có thể sử dụng nó 1 cách thành thạo. Hẹn gặp lại các bạn trong bài viết lần sau