I.Tổng quan về Maven

Maven là một công cụ quản và thiết lập tự động cho một dự án phần mềm. Khái niệm cơ bản nhất của Maven là Project Object Model (POM) để mô tả việc build project, lập báo cáo và xây dựng document từ các thành phần phụ thuộc và các module.

Maven cung cấp cho các nhà phát triển cách quản lý:

  • Builds
  • Documentation
  • Reporting
  • Dependencies
  • SCMs
  • Releases
  • Distribution
  • Mailing list

Maven giúp chúng ta đơn giản và tiêu chuẩn hóa trong việc xây dựng dự án. Nó giúp biên soạn, sắp xếp, xây dựng tài liệu, công tác và một số nhiệm vụ khác. Maven tăng khả năng tái sử dụng các thư viện và giúp chúng ta rất nhiều trong việc xây dựng dự án.

Ps: Mình thấy Maven khá giống composer của PHP và npm của Nodejs. Nhưng Maven các gói thư viện(nằm ở thư mục duy nhất) sử dụng chung cho các dự án java khác nhau.

II. Môi trường cài đặt Maven

Yêu cầu phải cài đặt JDK 1.5 hoặc lớn hơn

Bước 1 – xác thực Java đã cài đặt trên máy tính của bạn

Bây giờ mở console và chạy dòng lệnh để xác định bản java cài đặt

OS

Task

Command

Windows

Mở Command Console

c:\> java -version

Linux

Mở Command Terminal

$ java -version

Mac

Mở Terminal

machine:~ thanhle$ java -version

Bước 2 – Cấu hình môi trường Java

Set biến JAVA_HOME đến thư mục Java đã cài đặt. Ví dụ:

OS

Output

Windows

Set biến môi trường JAVA_HOME C:\Program Files\Java\jdk1.7.0_71

Linux

export JAVA_HOME=/usr/local/java-current

Mac

export JAVA_HOME=/Library/Java/Home

 

Thêm đường dẫn đến trình biên dịch Java ở System Path:

OS

Output

Window

Thêm dòng C:\Program Files\Java\jdk1.7.0_71/bin ở cuối chuỗi(Path)

Linux

export PATH=$PATH:$JAVA_HOME/bin/

Mac

Không yêu cầu

 

Bước 3 – Download Maven

Download phiên bản mới 3.2.3

OS

Tên file

Windows

apache-maven-3.2.3-bin.zip

Linux

apache-maven-3.2.3-bin.tar.gz

Mac

apache-maven-3.2.3-bin.tar.gz

 

Bước 4 – Giải nén tập tin Maven

OS

Vị trí cài đặt(Có thể khác với vị trí cài đặt của bạn)

Windows

C:\Program Files\Apache Software Foundation\apache-maven-3.2.3

Linux

/usr/local/apache-maven

Mac

/usr/local/apache-maven

 

Bước 5 – Set biến môi trường cho Maven

Tạo biến môi trường M2_HOME, M2, MAVEN_OPTS.

OS

Output

Windows

Set the environment variables using system properties.

M2_HOME=C:\Program Files\Apache Software Foundation\ apache-maven-3.2.3

M2=%M2_HOME%\bin

MAVEN_OPTS=-Xms256m -Xmx512m

Linux

Open command terminal and set environment variables.

export M2_HOME=/usr/local/apache-maven/ apache-maven-3.2.3

export M2=%M2_HOME%\bin

export MAVEN_OPTS=-Xms256m -Xmx512m

Mac

Open command terminal and set environment variables.

export M2_HOME=/usr/local/apache-maven/ apache-maven-3.2.3

export M2=%M2_HOME%\bin

export MAVEN_OPTS=-Xms256m -Xmx512m

 

Bước 6 – Thêm đường dẫn thư mục bin Maven vào trong Path system

Bây giờ thêm biên M2 đến Path system

OS

Output

Windows

Append the string ;%M2% to the end of the system variable, Path.

Linux

export PATH=$M2:$PATH

Mac

export PATH=$M2:$PATH

 

Bước 7 – Kiểm tra việc cài đặt Maven

OS

Task

Command

Windows

Open Command Console

c:\> mvn --version

Linux

Open Command Terminal

$ mvn --version

Mac

Open Terminal

machine:~ joseph$ mvn --version

 

Kết quả:

OS

Output

Windows

Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-12T03:58:1 0+07:00)

Java home: C:\Program Files\Java\jdk1.7.0_71\jre

Linux

Apache Maven 3.2.3  (r801777; 2014-08-12 03:59:01+0530)

Java version: 1.6.0_21

Mac

Apache Maven 3.2.3  (r801777; 2014-08-12 03:59:01+0530)

Java version: 1.6.0_21

 

Việc cấu hình đã hoàn tất. Bây giờ chúng ta có thể dùng Maven cho những dự án Java.

 

III.Maven POM(Project Object Model)

Là một file xml. Pom.xml chứa thông tin về dự án và chi tiết các cấu hình dùng để xây dựng dự án bằng Maven.

Một vài cấu hình đặc trưng của POM:

  • Project dependencies
  • Plugins
  • Goals
  • Build profiles
  • Project version
  • Developers
  • Mailing list

Trước khi tạo file POM, bạn nên đặt tên nhóm (groupId), tên(artifactId) và phiên bản của dự án. Những thuộc tính nói trên giúp định danh cho dự án trong repository.

Ví dụ file POM:

IV. Tạo project Java

Maven dùng archetype plugin để tạo project. Từ cửa sổ lệnh, chuyển tới thư mục mà bạn muốn lưu project. Gõ lệnh theo cấu trúc sau:

mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name} -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Lệnh trên yêu cầu Maven tạo một project Java từ template "maven-archetype-quickstart" (template đơn giản nhất). Ví dụ, tạo một project có tên ProjectDemoMaven tại thư mục hiện tại, groupID (cominit.com.project) là tên của nhóm project hiện tại, cũng là tên package của project ProjectDemoMaven.

Sau khi gõ lệnh theo cấu trúc trên thì Maven sẽ bắt đầu xử lý và sẽ tạo cấu trúc ban đầu cho project java:

Và đây là cấu trúc project java vừa tạo:

Từ cấu trúc project ta có:

Cấu trúc thư mục

Mô tả

ProjectDemoMaven

Chứa thư mục src và pom.xml

src/main/java

Chứa các file java trong package(cominit.com.project)

src/main/test

Chứa các file test java trong package(cominit.com.project)

 

Như bạn thấy thì Maven đã tạo file App.java và AppTest làm ví dụ cho chúng ta. Các bạn tự mở ra xem nhé J. Ở phần này chỉ đơn giản hướng dẫn bạn cách tạo dự án Java dùng Maven.

V. Cách build và test Java project

Dưới đây là file pom.xml của project ProjectDemoMaven:

Mặc định thì Maven đã thêm sẵn junit phục vụ việc test project.

Bây giờ mở console quánh lệnh:

G:\CODE\maven\ProjectDemoMaven>mvn clean package

Maven sẽ bắt đầu xây dựng project:

G:\CODE\maven\ProjectDemoMaven>mvn clean package

[INFO] Scanning for projects...

[INFO]

[INFO] ------------------------------------------------------------------------

[INFO] Building ProjectDemoMaven 1.0-SNAPSHOT

----------------------------------------------Dài quá bỏ bớt--------------------------------------------

T E S T S

-------------------------------------------------------

Running cominit.com.project.AppTest

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.016 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO]

[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ ProjectDemoMaven ---

[INFO] Building jar: G:\CODE\maven\ProjectDemoMaven\target\ProjectDemoMaven-1.0-

SNAPSHOT.jar

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 2.879 s

[INFO] Finished at: 2014-10-19T23:40:58+07:00

[INFO] Final Memory: 15M/112M

[INFO] ------------------------------------------------------------------------

Quá trình thực hiện lệnh trên:

  • Maven thực hiện clear thư mục target và build pakage project thành file jar.
  • Package jar có tên ProjectDemoMaven-1.0-SNAPSHOT.jar nằm trong thư mục target.
  • Report kết quả test ra các file trong ProjectDemoMaven\target\surefire-reports\
  • Maven biên dịch cả source code và test source code.
  • Maven chạy test case.
  • Cuối cùng Maven tạo package.

Bây giờ mở cmd, đi đến G:\CODE\maven\ProjectDemoMaven\target\classes và thực thi lệnh:

G:\CODE\maven\ProjectDemoMaven\target\classes>java comint.com.project.App

Kết quả:

Hello World!

Thêm file java vào project

Tạo file Util.java in project ProjectDemoMaven tại thư mục G:\CODE\maven\ProjectDemoMaven\src\main\java\cominit\com\project\

File Util.java

 

Cập nhật file App.java

 

Thực hiện lần lượt các lệnh:

G:\CODE\maven\ProjectDemoMaven>mvn clean package

 

G:\CODE\maven\ProjectDemoMaven\target\classes>java comint.com.project.App

Kết quả:

Hello Cominit

VI. Tạo tài liệu cho project

Phần này sẽ hướng dẫn tạo tài liệu của ứng dụng. Đi đến thư mục chứa ProjectDemoMaven và chạy dòng lệnh mvn sau:

G:\CODE\maven\ProjectDemoMaven>mvn site

[INFO] Scanning for projects...

[INFO]

[INFO] ------------------------------------------------------------------------

[INFO] Building ProjectDemoMaven 1.0-SNAPSHOT

[INFO] ------------------------------------------------------------------------

[INFO]

---------------------------------------------Dài quá mình bỏ bớt--------------------------------------------

[INFO] Generating "Dependencies" report    --- maven-project-info-reports-plugin

:2.7

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 21.746 s

[INFO] Finished at: 2014-10-20T00:35:46+07:00

[INFO] Final Memory: 18M/174M

[INFO] ------------------------------------------------------------------------

Vậy là tài liệu của project đã được tạo trong thư mục target và bạn có thể click vào để xem:

 

Mình chỉ hướng dẫn sử dụng cơ bản của Maven. Các bạn cố gắng tìm hiểu sâu thêm trên trang chủ của Maven. Các IDE như Eclipse, NetBean, IntelliJ IDEA có hỗ trợ sử dụng Maven khá là trực quan và dễ sự dụng khi đã hiển bạn chất của nó.


Leave a Comment

Fields with * are required.