آنچه در این مقاله میخوانید
نصب Apache Maven بر روی اوبونتو با JDK 17، SDKMAN و اتوماسیون CI/CD
۲۴ دی ۱۴۰۴
Apache Maven یکی از ابزارهای اصلی در اکوسیستم جاوا برای ساخت (Build)، مدیریت وابستگیها و استانداردسازی پروژهها محسوب میشود. این ابزار با تکیه بر قراردادهای مشخص و ساختار یکپارچه، به توسعهدهندگان کمک میکند فرآیند ساخت پروژههای جاوا را بهصورت قابلپیشبینی، تکرارپذیر و سازگار با محیطهای تیمی و سازمانی مدیریت کنند.
در این راهنما، فرآیند نصب Apache Maven روی سیستمعامل اوبونتو را بررسی میکنیم و علاوهبر آن، به پیکربندی JDK 17، مدیریت نسخهها با SDKMAN و آمادهسازی محیط برای استفاده در Pipelineهای CI/CD و Docker میپردازیم. هدف این مقاله صرفا نصب یک ابزار نیست، بلکه ایجاد یک محیط توسعهی پایدار و حرفهای است که در پروژههای واقعی قابل استفاده باشد.
با سرور اوبونتو لیارا، سرور خود را با هزینه بهصرفه و بالاترین کارایی مدیریت کنید.
✅ استقرار سریع ✅ منابع بهینه ✅ امنیت پیشرفته
خرید سرور مجازی اوبونتو ساعتی لیارا
آنچه در ادامه خواهید خواند:
- نکات کلیدی قبل از شروع
- پیشنیازها
- نصب JDK 17 روی اوبونتو
- روشهای نصب Apache Maven
- پیکربندی متغیرهای محیطی در سطح سیستم
- تأیید نصب و ساخت نمونه پروژه
- Maven در محیطهای CI/CD
- استفاده از Maven در Docker (Production-ready)
- فایل settings.xml در Maven
- جمعبندی
نکات کلیدی قبل از شروع
پیش از شروع نصب، توجه به نکات زیر اهمیت دارد:
- JDK 17 یکی از نسخههای LTS جاوا است که پایداری بالا و پشتیبانی بلندمدت دارد و انتخاب رایج تیمهای حرفهای محسوب میشود.
- Apache Maven 3.9.9 در زمان نگارش این مقاله، آخرین نسخهی پایدار Maven است و سازگاری کاملی با JDK 17 و ابزارهای CI/CD دارد.
- Maven را میتوان به روشهای مختلفی نصب کرد؛ از نصب ساده با APT گرفته تا مدیریت نسخه با SDKMAN یا استفاده در محیطهای خودکار و کانتینری.

پیشنیازها
برای دنبالکردن این راهنما، موارد زیر مورد نیاز است:
- یک سیستم مبتنی بر اوبونتو 20.04 یا جدیدتر
- آشنایی پایه با خط فرمان لینوکس و دسترسی sudo
- نیاز به نصب JDK 17 برای اجرای Maven و ساخت پروژههای جاوا
نصب JDK 17 روی اوبونتو
سادهترین و متداولترین روش نصب JDK 17 استفاده از مخازن رسمی اوبونتو است:
sudo apt update
sudo apt install openjdk-17-jdk
پس از نصب، متغیر محیطی JAVA_HOME را تنظیم کرده و به PATH اضافه کنید (در فایل ~/.profile یا ~/.bashrc):
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH="$JAVA_HOME/bin:$PATH"
برای اعمال تغییرات:
source ~/.profile
و بررسی نسخه:
java -version

نصب اختیاری JDK از Tarball (Temurin)
در محیطهایی که کنترل دقیقتری روی نسخهی جاوا نیاز است، میتوان از بستههای Temurin استفاده کرد:
wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.10+7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.10_7.tar.gz
tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.0.10_7.tar.gz
sudo mv jdk-17.0.10+7 /opt/jdk-17
تنظیم متغیر محیطی:
export JAVA_HOME=/opt/jdk-17
export PATH="$JAVA_HOME/bin:$PATH"
روشهای نصب Apache Maven
در ادامه قرار است تا روشهای موجود در نصب Apache Maven را شرح دهیم تا شما بتوانید بهتر این روند را ادامه دهید.
نصب Maven از طریق APT
این روش سریع است، اما معمولاً نسخهی Maven موجود در مخازن اوبونتو بهروزترین نسخه نیست:
sudo apt update
sudo apt install maven
بررسی نصب:
mvn -version
نصب Maven از باینری رسمی Apache (روش پیشنهادی)
برای استفاده از آخرین نسخهی پایدار Maven:
wget https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz
tar -xvf apache-maven-3.9.9-bin.tar.gz
sudo mv apache-maven-3.9.9 /opt/
تنظیم متغیرهای محیطی:
export M2_HOME=/opt/apache-maven-3.9.9
export PATH="$M2_HOME/bin:$PATH"

نصب Maven با SDKMAN
SDKMAN ابزاری کاربردی برای مدیریت همزمان نسخههای مختلف SDK (مانند Java و Maven) است:
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install maven 3.9.9
پیکربندی متغیرهای محیطی در سطح سیستم
برای اعمال تنظیمات بهصورت سراسری:
sudo tee /etc/profile.d/maven.sh >/dev/null << 'EOF'
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export M2_HOME=/opt/apache-maven-3.9.9
export PATH="$JAVA_HOME/bin:$M2_HOME/bin:$PATH"
EOF
sudo chmod +x /etc/profile.d/maven.sh
تأیید نصب و ساخت نمونه پروژه
java -version
mvn -version
ایجاد پروژهی نمونه:
mvn archetype:generate \
-DgroupId=com.example \
-DartifactId=hello-world \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false
ساخت پروژه:
cd hello-world
mvn compile
mvn package

Maven در محیطهای CI/CD
در Pipelineهای CI/CD، Maven بهصورت خودکار اجرا میشود. الگوی رایج:
mvn clean verify
کش وابستگیها
پوشهی زیر معمولاً کش میشود:
~/.m2/repository
این کار زمان Build را بهشدت کاهش میدهد.
استفاده از Maven در Docker (Production-ready)
FROM maven:3.9.9-eclipse-temurin-17 AS builder
WORKDIR /build
COPY pom.xml .
RUN mvn dependency:go-offline
COPY . .
RUN mvn clean package -DskipTests
FROM eclipse-temurin:17-jre
WORKDIR /app
COPY --from=builder /build/target/app.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]

فایل settings.xml در Maven
مسیر فایل:
~/.m2/settings.xml
تنظیم Proxy
<settings>
<proxies>
<proxy>
<id>corp-proxy</id>
<active>true</active>
<protocol>http</protocol>
<host>proxy.company.local</host>
<port>8080</port>
</proxy>
</proxies>
</settings>
Repository داخلی (Nexus / Artifactory)
<mirrors>
<mirror>
<id>internal-repo</id>
<mirrorOf>*</mirrorOf>
<url>https://repo.company.com/maven</url>
</mirror>
</mirrors>
مدیریت Credentialها
<servers>
<server>
<id>internal-repo</id>
<username>${env.REPO_USER}</username>
<password>${env.REPO_PASS}</password>
</server>
</servers>

جمعبندی
Apache Maven همچنان یکی از ستونهای اصلی توسعهی جاوا است. با نصب صحیح JDK 17، انتخاب روش مناسب نصب Maven و پیکربندی اصولی برای CI/CD و Docker، میتوان یک محیط توسعهی پایدار، قابلاعتماد و مقیاسپذیر ایجاد کرد.