Tổng quan về Maven tool – So sánh với Ant

Khái niệm

Maven là một công cụ để quản lý project và việc build một cách tự động. Nó phục vụ chính cho các project viết bằng Java nhưng cũng có thể hỗ trợ cho các project khác viết bằng C#, Ruby, Scala.
Maven dùng khái niệm Project Object Model(POM) để mô tả việc build project, các thành phần phụ thuộc và các module. Nó định nghĩa trước các target cho việc khai báo task, trình biên dịch, đóng gói và thứ tự hoạt động để mọi việc diến ra tốt nhất. Maven tải các thư viện, plug-in từ 1 hoặc nhiều repositories. Cũng có thể upload các sản phẩm lên repository sau khi đã build xong.
Lợi ích của Maven

  • Tự động hóa toàn bộ quá trình release project: khởi tạo, cập nhật thư viện, build & test, release và tạo tài liệu mô tả.
  • Hãy thử tưởng tượng về 1 dự án lớn, trong đó các hàng chục các module làm các côngviệc khác nhau. Mỗi team phụ trách một module và quá trình phát triển các module: từ phân tích yêu cầu, đặc tả, đến phát triển, kiểm thử và release là đồng thời và độc lập. Nhưng các module này phụ thuộc vào nhau, cần thiết cho nhau để phát triển.

Tự động hóa toàn bộ qui trình release là yêu cầu hàng đầu

Chỉ cần 1 sự chậm trễ, sai lầm ở một công đoạn có thể làm đổ vỡ cả quá trình release của project. Cho nên việc tự động hóa toàn bộ là ưu tiên hàng đầu, nhờ đó là việc lên kế hoạch hiệu quả và chính xác hơn, việc tích hợp và triển khai cũng đơn giản hơn rất nhiều.
Tự động hóa quá trình test với các plugin: Toàn bộ quá trình test được tự động, từ đó các lỗi được phát hiện sớm hơn. Thậm chí lỗi có thể phát hiện ở giai đoạn phát triển, do các developer đều có thể chạy các test case một cách dễ dàng bằng Maven.

  • JUnit, TestNG – Unit test
  • Selenium, Canoo – Web GUI test
  • SoapUI – Web services tests
  • JMeter – Performances tests

Quản lý các dependencies(các thư viện) trong project một các ưu việt: tự động cập nhật, mở rộng dễ dàng, đóng gói(có thể hiểu là phụ thuộc các thư viện bắc cầu)

Phân chia 1 project lớn thành các module nhỏ: từ đó cho phép làm việc đồng thời trên các module khác nhau, đồng thời vẫn tạo được tính thống nhất

Không phụ thuộc vào IDE: cho phép chuyển đổi tử Eclipse sang NetBeans,.. một cách dễ dàng
Hệ thống plugin phóng phú trong đó có cả Ant

Thực tế ứng dụng

Hiện nay, đã có rất nhiều các công ty chuyển sang dùng Maven do ý thức được sức mạnh của nó như một sự thay thế và bổ sung hoàn hảo cho Ant. Tuy nhiên Việt Nam, mới chỉ có một số công ty phần mềm nước ngoài tận dụng được lợi ích của nó: eXo platform SEA, KMS, Citigo….

So sánh với Apache Ant?

Ant là 1 công cụ rất mạnh và phổ biến với Java developer. Khác với Maven là 1 project management tool, Ant đơn thuần chỉ là 1 build tool. Chính nhờ vào ưu điểm đơn giản, dễ sử dụng mà đa số các developer đều sử dụng nó. Hơn nữa, trong khi Ant thích hợp cho mọi loại project, thi Maven lại chứng tỏ sức mạnh rõ rệt ở các project lớn và rất lớn nhằm giúp cho việc quản lý dễ dàng và thống nhất hơn. Ngoài ra Ant đến với developer trước(2000) so với Maven(2006) và tới nay nó vẫn còn rất hữu dụng.

Hướng dẫn cài đặt Maven

  •  Tải và cài đặt Java JDK
  • Download và cài đặt Maven: http://maven.apache.org/download.html
  • Unzip vào thư mục bạn muốn cài đặt, ở đây tôi chọn C:\apache-maven-2.2.1
  • Right-click vào My Computer mở Properties. Mở tab Advanced và click vào nút Environment Variables. Thêm vào biến môi trường PATH dòng sau: C:\apache-maven-2.2.1\bin
  • Thiết lập biến môi trường sau: M2_HOME là C:\apache-maven-2.2.1
  • Thiết lập biến môi trường : M2 là C:\apache-maven-2.2.1\bin
  • Mở cmd, kiểm tra JAVA, Maven đã được cài đặt thành công và các biến môi trường đã được thiết lập đúng:

Lời kết

Hiện tại Apache đã release phiên bản Maven 3.0 với rất nhiều thay đổi quan trọng:

  • Hỗ trợ parralel build với các module và tối ưu hóa hệ thống
  • Cải tiến hiệu năng và khả năng tích hợp với các IDE
  • Tương thích 100% với các version trước đó

Bên cạnh đó cộng đồng và số lượng người dùng Maven cũng ngày một lớn mạnh:
Wiki người dùng http://docs.codehaus.org/display/MAVENUSER
Với sức mạnh to lớn và sự phát triển nhanh chóng, Maven chắc chắn sẽ giành được vị thể xứng đáng là tương lai của nền tảng build đối với các ứng dụng Java Enterprise trong 1 ngày không xa. Các developer, các bạn đã khởi đầu với Ant như là beginner, vậy hãy đến với Maven như một professional.

Đăng bởi