Maven - Something you need

- 4 mins

Maven - A Build Tool for Java

Maven là một công cụ hữu ích để xây dựng một project viết bằng java. Maven giúp tự động hóa các giai đoạn khi phát triển phần mềm như tạo source code, tạo document, biên dịch, đóng gói và cài đặt các gói phần mềm liên quan. Ưu điểm của việc sử dụng công cụ build project như maven sẽ giúp cho quá trình phát triển tiết kiệm được thời gian đồng thời giảm sai sót so với việc tự xây dựng và kiểm thử từng bước.

Ý tưởng cốt lõi của Maven

Maven tập trung xây dựng project dựa vào file pom.xml. File pom chứa thông tin các tài nguyên dùng trong project như source code, test code, các package phụ thuộc,v.v. File pom thường được đặt trong thư mục gôc của project. Sơ đồ dưới đây mô tả các bước để build một project bằng công cụ maven: Maven Overview

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         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>com.dev.diary</groupId>
    <artifactId>java-web-crawler</artifactId>
    <version>1.0.0</version>
</project>

File pom.xml trên chứa một số thông tin cơ bản của project.

Running Maven

Maven sẽ thực hiện các lệnh từ terminal hay còn gọi là các phase. Một số lệnh cơ bản của maven thường được sử dụng như:

mvn install

Lệnh này sẽ build project và tạo file JAR lưu trong thư mục project. “mvn install” cũng sẽ thực hiện tất cả các phase cần thiết để có thể chạy lệnh install và tạo ra file JAR để deploy service của bạn.

mvn clean install

Nếu trước đây bạn đã từng build project và tạo xong một file JAR thì khi muốn install lại từ code, bạn có thể thêm tham số clean vào. Tham số này sẽ xóa các file được tạo ra từ lần build trước và instal lại.

mvn dependency:copy-dependencies

Bạn cũng có thể thực hiện build từng phần nhỏ trong mỗi phase bằng cách thêm dấu “:” vào giữa phase và bước con trong phase đó (hay còn gọi là goal). Trong lệnh ví dụ ở trên, ta đã thực hiện copy các dependencies trong phase dependency

Maven Directory Structure

Maven cũng cung cấp cho chúng ta một cấu trúc thư mục chuẩn của trong một project. Như đã nói ở trên, nếu bạn tạo một project theo đúng cấu trúc này (các IDLE java đã hỗ trợ chúng ta việc này) thì bạn không cần phần cấu hình cụ thể cấu trúc thư mục bên trong file pom nữa mà maven sẽ dựa theo cấu trúc chuẩn này để build project.

Một project sử dụng maven sẽ có cấu trúc chuẩn như sau:

- src
  - main
    - java
    - resources
    - webapp
  - test
    - java
    - resources

- target
comments powered by Disqus
rss facebook twitter github gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora