1. 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, …
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 : struts, hibernate, spring, … Việc import thư viện và các dependency ( dịch hiểu là “sự phụ thuộ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.
2. Repository : Là nơi để chương trình maven download các dependency. Chi tiết tham khảo ở link :
https://maven.apache.org/guides/introduction/introduction-to-repositories.html
3. Install : Apache maven hiện nay đã được tích hợp sẵn vào trong eclipse ( trừ những bản rất cũ, mình khuyên các bạn không nên dùng những bản cũ này ).
4. Tạo 1 project maven :
Bước 1: File -> New -> Maven Project. Trong dialog hiện ra, lựa chọn “Create a simple project …” như trong hình. Chọn next
Bước 2: Điền như trong hình
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 : để ý 2 giá trị : jar có nghĩa là thư viện or java
application, war là web application -
Name : Tên project (trong eclipse)
Nhấn finish
5. 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 :
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>leviethoai</groupid> <artifactid>maven-sample</artifactid> <version>0.0.1-SNAPSHOT</version> <name>Maven sample</name></project>
Trong đó, 0.0.1-SNAPSHOT là version của project. Bây giờ chúng ta sẽ thử add 1 thư viện vào dự án, vd chúng ta sẽ add thư viện hibernate. Thêm thẻ khai báo vào file pom :
<dependencies> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-core</artifactid> <version>5.0.0.CR2</version> </dependency> </dependencies>
Các khai báo dependency như ở trên các bạn có thể tìm ở http://mvnrepository.com
Khi đó, file pom sẽ có nội dung như sau :
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>leviethoai</groupid> <artifactid>maven-sample</artifactid> <version>0.0.1-SNAPSHOT</version> <name>Maven sample</name> <dependencies> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-core</artifactid> <version>5.0.0.CR2</version> </dependency> </dependencies> </project>
Lưu file pom lại và đợi project build xong, thư viện sẽ được add tự động vào project : (ở mục Maven Dependencies)
Trong VD trên, maven sẽ tự động download các thư viện cần thiết khác để có thể sử dụng hibernate core, bởi vì hibernate được xây dựng trên (or sử dụng lại) các thư viện này. Hãy thử tưởng tượng nếu không có maven, bạn sẽ phải add bằng tay một đống thư viện như trên cùng với version phù hợp!
Các thư viện download về sẽ nằm ở thư mục C:\Users{username}.m2\repository.
Thư viện hibernate trong ví dụ trên sẽ nằm ở thư mục C:\Users{username}.m2\repository\org\hibernate\hibernate-core\5.0.0.CR2.
Các bạn có thể mở file pom (hibernate-core-5.0.0.CR2.pom) của hibernate lên, để xem nó phụ thuộc những dependencies nào, và cũng để hiểu rõ hơn về maven.
6. Một số lệnh maven cơ bản :
Right click vào project, chọn Run As -> Maven Build… Trong phần Goal, điền các command, mỗi command cách nhau một khoảng trắng, sau đó click Run để chạy maven.
Một số lệnh maven cơ bản :
clean : clean lần build trước đócompile : tiến hành compile, dịch các file java sang class, copy các file resources, lib…package : package project thành jar or warinstall : đưa 1 thư viện lên repository (ở đây là local), để các project khác có thể sử dụng ( chỉ sử dụng với các project jar)
7. Tổng kết :
Qua ví dụ trên chúng ta đã hiểu được khái niệm cơ bản của maven. Ngoài ra maven còn rất nhiều tính năng khác, các bạn có thể tham khảo chi tiết ở link https://maven.apache.org/
Trên đây mình chỉ trình bày sơ bộ về khái niệm maven. Hy vọng có ích cho các bạn. Nếu bài viết có gì sai sót, mong các bạn góp ý. Thank