Apache Maven từ lâu đã được coi là tiêu chuẩn vàng trong hệ sinh thái Java để quản lý dependency management và build automation. Dù bạn đang phát triển một ứng dụng Spring Boot nhỏ hay vận hành hệ thống CI/CD phức tạp cho doanh nghiệp, Maven đóng vai trò là quan trọng đảm bảo code được biên dịch và đóng gói chính xác.

1. Prerequisites
Maven chạy trên JVM, vì vậy bạn cần JDK trước khi cài. Maven 3.9+ yêu cầu tối thiểu JDK 8, nhưng vào 2025 bạn nên dùng JDK 17 LTS hoặc 21 LTS.
Kiểm tra Java:
java -version
Cài OpenJDK 17 (nếu chưa có):
- Ubuntu/Debian:
sudo apt install openjdk-17-jdk -y - RHEL/CentOS:
sudo dnf install java-17-openjdk-devel -y
Nếu hệ thống có nhiều bản Java, đảm bảo JAVA_HOME đã được set chính xác.
2. Manual Installation
Cài thủ công vào /opt luôn là cách sạch nhất và kiểm soát tốt nhất. Nó độc lập với package manager, tiện cho việc upgrade mà không làm gián đoạn build.
Bước 1: Tải binary
Truy cập trang download của Maven và lấy bản mới nhất (ở đây là 3.9.9):
cd /tmp
wget https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz
(Trong môi trường nghiêm ngặt, hãy verify SHA-512 checksum.)
Bước 2: Giải nén vào /opt
tar -xvf apache-maven-3.9.9-bin.tar.gz
sudo mv apache-maven-3.9.9 /opt/
Nhiều team còn set owner cho consistent:
sudo chown -R root:root /opt/apache-maven-3.9.9
Bước 3: Tạo symlink phiên bản
Thay vì trỏ PATH tới thư mục version, ta tạo symlink để đổi version nhanh:
sudo ln -s /opt/apache-maven-3.9.9 /opt/maven
Khi có Maven 3.9.10, chỉ cần:
sudo rm /opt/maven
sudo ln -s /opt/apache-maven-3.9.10 /opt/maven
Không phải sửa file nào thêm nữa.
Bước 4: Thiết lập Environment Variables
Tạo file cấu hình system-wide:
sudo nano /etc/profile.d/maven.sh
Thêm:
export M2_HOME=/opt/maven
export MAVEN_HOME=/opt/maven
export PATH=${M2_HOME}/bin:${PATH}
Áp dụng:
sudo chmod +x /etc/profile.d/maven.sh
source /etc/profile.d/maven.sh
Bước 5: Kiểm tra
mvn -version
Bạn sẽ thấy version Maven, version Java và PATH đều đúng.
3. Advanced Configuration
Cài xong mới chỉ là phần nền. Những mục dưới đây giúp build nhanh hơn, ổn định hơn, đặc biệt cho các dự án lớn.
1. Tối ưu bộ nhớ JVM
export MAVEN_OPTS="-Xms512m -Xmx2048m"
Build dự án enterprise bắt buộc nên đặt heap cao hơn mặc định.
2. Di chuyển Local Repository
Mặc định nằm tại ~/.m2/repository. Nếu máy build dùng ổ riêng cho data, hãy chuyển repo sang đó:
Trong /opt/maven/conf/settings.xml:
<localRepository>/data/maven-repo</localRepository>
Hoặc tạo file ~/.m2/settings.xml cho user-specific.
3. Mirror Repository
Tốc độ tải về từ Maven Central có thể chậm theo từng thời điểm. Có thể dùng Google Maven Central làm mirror:
<mirrors>
<mirror>
<id>google-maven-central</id>
<name>Google Maven Central</name>
<url>https://maven-central.storage-download.googleapis.com/maven2/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
Đối với doanh nghiệp, mirror nội bộ gần như là bắt buộc.
4. Cách cài khác: SDKMAN!
Trên máy cá nhân, SDKMAN! là công cụ đơn giản nhất để quản lý version:
Cài SDKMAN:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
Cài Maven:
sdk install maven
Chuyển version (giữ dự án cũ chạy ổn):
sdk use maven 3.8.6
SDKMAN cũng quản lý luôn JDK cực tiện cho Dev phải chạy nhiều project khác nhau.
5. Lời khuyên thực tế
- Server Production hoặc CI/CD: Cài manual vào
/opt+ symlink. Ổn định, dễ audit, dễ upgrade. - Laptop Developer: Dùng SDKMAN!. Không phải tự quản version.
- Trong dự án: Bắt buộc dùng Maven Wrapper (
mvnw) để đảm bảo đúng version Maven mà dự án yêu cầu.
Tạo wrapper:
mvn wrapper:wrapper
Từ đó toàn team dùng:
./mvnw clean package
Không còn cảnh môi trường mỗi người một kiểu.






