Printing is unavailable

This course is licensed for personal online viewing only.

Public preview • CL-P000000-C39-L1565-15F71CF6

Home Dashboard
Chapter 2 · Module 1 — Maven Foundations

Installing Maven and Configuring the Build Environment

Priority
  • JobHigh
  • InterviewMedium
  • DevelopmentHigh
3,533
words
20
min read
3
tools

1. Learning Outcomes#

इस chapter को पूरा करने के बाद आप:

  • समझ पाएँगे कि Maven चलाने के लिए कौन-कौन से runtime prerequisites चाहिए।
  • installed JDK और Java environment को verify कर पाएँगे।
  • JAVA_HOME और system PATH का अलग-अलग purpose समझ पाएँगे।
  • Apache Maven को binary distribution से install करने का सही flow समझ पाएँगे।
  • package manager से Maven installation का तरीका और उसका trade-off समझ पाएँगे।
  • Maven के bin directory को PATH में configure करना समझ पाएँगे।
  • mvn -v से Maven installation verify कर पाएँगे।
  • Maven Home, Java version और Java Home जैसी runtime information समझ पाएँगे।
  • common Maven installation और environment problems diagnose कर पाएँगे।

2. Maven Build Environment का Mental Model#

Maven को install करना केवल एक ZIP file download करके extract करने का काम नहीं है।

Maven एक Java-based build tool है। इसलिए Maven चलने से पहले machine पर usable Java environment होना चाहिए।

फिर operating system को यह पता होना चाहिए कि mvn command कहाँ मौजूद है।

इस पूरे setup को एक simple flow से समझिए:

Visual Diagram80%

Rendering diagram…

जब आप terminal में:

BASH
mvn -v

लिखते हैं, तो सबसे पहले shell PATH में mvn command खोजता है।

mvn मिलने के बाद Maven को Java runtime चाहिए।

यही कारण है कि Maven setup में दो अलग problems हो सकती हैं:

  • Java सही configured है, लेकिन mvn command नहीं मिल रही।
  • mvn command मिल रही है, लेकिन Maven गलत Java version use कर रहा है।

इन दोनों problems को अलग-अलग समझना बहुत महत्वपूर्ण है।

Key Idea

Maven setup का मतलब है: usable JDK + सही environment configuration + Maven installation + Maven bin की command-line availability.

3. Maven Runtime Prerequisites#

Maven successfully चलाने के लिए कुछ basic prerequisites चाहिए।

1. JDK installed होना चाहिए#

Java development environment के लिए केवल Java application run करना पर्याप्त नहीं है।

आपको सामान्यतः JDK — Java Development Kit चाहिए।

JDK में Java runtime के साथ development tools भी होते हैं, जैसे javac.

इसलिए environment verify करते समय केवल java नहीं, बल्कि javac भी check करना useful है।

2. Maven release के compatible Java version की आवश्यकता होती है#

अलग Maven releases के minimum Java requirements अलग हो सकते हैं।

इसलिए किसी पुराने tutorial में दिखाई गई Java requirement को हमेशा universal rule न मानें।

Professional setup में दो versions clearly know होने चाहिए:

  • Maven version
  • Maven को run करने वाला Java version

इसी कारण mvn -v इतना important command है।

3. Maven installation directory accessible होनी चाहिए#

Binary distribution से Maven install करते समय archive को किसी stable directory में extract करना चाहिए।

उदाहरण के लिए Windows पर directory इस तरह हो सकती है:

C:\Tools\apache-maven-<version>

Unix-like system पर installation directory इस तरह हो सकती है:

/opt/apache-maven

Folder का exact location अलग हो सकता है। Important बात यह है कि बाद में उसका bin directory आसानी से configure किया जा सके।

4. Shell को mvn command locate करनी आनी चाहिए#

Maven के installation folder के अंदर bin directory होती है।

इसी directory में Maven launcher मौजूद होता है।

इसलिए Maven के bin directory को PATH में add किया जाता है।

4. Installed JDK और Java Environment Verify करना#

Maven install करने से पहले Java environment verify करना अच्छी habit है।

इससे बाद में Maven failure होने पर यह confusion नहीं रहता कि problem Java की है या Maven की।

Windows पर verification#

PowerShell या Command Prompt खोलें और पहले Java runtime check करें:

POWERSHELL
java -version

फिर Java compiler check करें:

POWERSHELL
javac -version

PowerShell में JAVA_HOME देखने के लिए:

POWERSHELL
$env:JAVA_HOME

Java executable कहाँ से मिल रहा है, यह देखने के लिए:

POWERSHELL
where.exe java
where.exe javac

अगर java और javac दोनों expected JDK installation से resolve हो रहे हैं, तो Java side का setup काफी हद तक सही है।

Linux या macOS पर verification#

BASH
java -version
javac -version
echo "$JAVA_HOME"
which java
which javac

which आपको बताता है कि shell कौन-सा executable locate कर रहा है।

Remember

केवल java -version successful होना complete development environment की guarantee नहीं है। javac -version भी verify करना useful है।

5. JAVA_HOME को सही तरह समझना#

JAVA_HOME एक environment variable है।

इसका काम operating system को हर Java command ढूँढना नहीं है।

इसका मुख्य purpose Java-based tools को JDK installation का root location बताना है।

मान लीजिए JDK यहाँ installed है:

C:\Java\jdk-21

तो सामान्यतः:

JAVA_HOME = C:\Java\jdk-21

होना चाहिए।

यह नहीं:

C:\Java\jdk-21\bin

और यह भी नहीं:

C:\Java\jdk-21\bin\java.exe

JAVA_HOME में bin क्यों नहीं रखा जाता#

JDK root directory के अंदर अलग-अलग resources और subdirectories होती हैं।

bin उनमें से केवल एक directory है।

Java-based tools को पूरे JDK home का reference चाहिए हो सकता है।

इसलिए mental model रखें:

JAVA_HOME → JDK root

और:

PATH → executable directories

Common Mistake

JAVA_HOME को JDK के bin folder पर point करना एक common beginner mistake है।

6. System PATH को समझना#

जब आप terminal में यह लिखते हैं:

BASH
java

या:

BASH
mvn

तो shell पूरे computer में random search नहीं करता।

वह PATH नाम की ordered directory list में executable खोजता है।

इसीलिए PATH command discovery के लिए important है।

Maven environment में सामान्य रूप से दो useful executable locations होते हैं:

Purpose Typical PATH Entry
Java commands JDK bin directory
Maven command Maven bin directory

Windows environment में conceptually entries इस तरह दिखाई दे सकती हैं:

%JAVA_HOME%\bin

और:

C:\Tools\apache-maven-<version>\bin

JAVA_HOME और PATH का difference#

Setting Main Purpose Typical Value
JAVA_HOME JDK root identify करना C:\Java\jdk-21
Java PATH entry java और javac commands locate करना %JAVA_HOME%\bin
Maven PATH entry mvn command locate करना Maven installation का bin folder

इस difference को समझना troubleshooting में बहुत काम आता है।

अगर java -version चलता है लेकिन mvn -v नहीं चलता, तो इसका मतलब Java available हो सकता है लेकिन Maven PATH में missing हो सकता है।

7. Maven Binary Distribution से Installation#

Binary distribution का मतलब है कि Apache Maven का pre-built archive download करके उसे अपने system पर extract और configure किया जाए।

यह approach आपको Maven installation directory और Maven version पर direct control देती है।

Step 1 — Java environment verify करें#

पहले:

BASH
java -version

और:

BASH
javac -version

run करें।

अगर Java environment ही broken है, तो Maven installation आगे बढ़ाने से troubleshooting unnecessarily difficult हो जाएगी।

Step 2 — Maven binary archive प्राप्त करें#

Apache Maven का binary distribution चुनें।

Source archive और binary archive अलग चीजें हैं।

Normal Maven installation के लिए आपको source code compile करने की आवश्यकता नहीं होती।

आपको pre-built binary distribution चाहिए।

Operating system के अनुसार archive format अलग हो सकता है, जैसे ZIP या compressed TAR archive।

Step 3 — Archive को stable location में extract करें#

Windows पर example:

C:\Tools\apache-maven-<version>

Linux या Unix-like environment में example:

/opt/apache-maven

Temporary download directory को permanent Maven home की तरह use करना ideal नहीं है।

Stable location future maintenance को आसान बनाती है।

Step 4 — Maven bin directory identify करें#

अगर Maven root है:

C:\Tools\apache-maven-<version>

तो executable directory होगी:

C:\Tools\apache-maven-<version>\bin

यही directory PATH में चाहिए।

Step 5 — PATH update करें#

अपने operating system के environment configuration में Maven bin directory add करें।

Windows पर conceptual entries:

%JAVA_HOME%\bin

C:\Tools\apache-maven-<version>\bin

Linux/macOS shell environment का basic concept इस तरह है:

BASH
export JAVA_HOME="/path/to/your/jdk"
export PATH="$JAVA_HOME/bin:/opt/apache-maven/bin:$PATH"

यह example concept समझाने के लिए है। Actual JDK path आपके system पर अलग होगा।

Step 6 — नया terminal खोलें#

Environment variable change करने के बाद already-open terminal कई बार पुरानी environment values रखता है।

इसलिए configuration change के बाद नया terminal खोलना safest verification step है।

8. MAVEN_HOME और Maven Home#

Beginners अक्सर JAVA_HOME, MAVEN_HOME और Maven Home को एक जैसा समझ लेते हैं।

ये एक ही चीज नहीं हैं।

JAVA_HOME Java installation को identify करता है।

Maven Home Maven installation का root directory है।

सामान्य modern Maven command-line setup में Maven को चलाने के लिए manually MAVEN_HOME set करना जरूरी नहीं होता, क्योंकि launcher Maven installation locate कर सकता है।

फिर भी कुछ external tools, scripts या legacy environment conventions में MAVEN_HOME दिखाई दे सकता है।

इस chapter के लिए सबसे important requirements हैं:

  • usable Java environment
  • Maven installation
  • Maven bin directory on PATH
Remember

mvn -v में दिखाई देने वाला Maven Home यह बताता है कि चल रहा Maven installation वास्तव में किस location से आया है।

9. Package Manager से Maven Installation#

Manual binary installation के अलावा Maven package manager से भी install किया जा सकता है।

Package manager installation का बड़ा फायदा convenience है।

वह download, installation और कई cases में PATH integration भी manage कर सकता है।

Windows with Chocolatey#

अगर system पर Chocolatey पहले से installed है:

POWERSHELL
choco install maven

macOS with Homebrew#

BASH
brew install maven

Debian/Ubuntu-based Linux#

BASH
sudo apt update
sudo apt install maven

SDKMAN-based installation#

जहाँ SDKMAN configured है:

BASH
sdk install maven

इन commands का मतलब यह नहीं है कि हर machine पर package manager वही Maven version देगा।

Package-manager repository का available version official binary distribution के current version से अलग हो सकता है।

Binary installation बनाम package manager#

Aspect Binary Distribution Package Manager
Version control Direct control अधिक Repository/package definition पर निर्भर
Setup effort अधिक manual आमतौर पर आसान
PATH configuration अक्सर manually verify करना पड़ता है अक्सर package manager handle करता है
Upgrade process नई distribution manually install करनी पड़ सकती है package manager upgrade command आसान हो सकती है
Team consistency Exact version manually standardize कर सकते हैं Package source/version differences check करने पड़ सकते हैं

Professional environment में installation method से अधिक important है कि team के required Maven और Java versions consistent हों।

10. Maven bin Directory को PATH पर Configure करना#

अब सबसे important command-discovery flow देखें।

Visual Diagram80%

Rendering diagram…

यह diagram troubleshooting का useful mental model है।

पहले shell को mvn मिलना चाहिए।

उसके बाद Maven को Java मिलना चाहिए।

Windows configuration concept#

Environment Variables में Path edit करते समय Maven का bin directory add करें।

Example:

C:\Tools\apache-maven-<version>\bin

अगर JDK setup भी manually किया गया है, Java executable path सामान्यतः इस तरह रखा जा सकता है:

%JAVA_HOME%\bin

Configuration save करने के बाद नया terminal खोलें।

फिर verify करें:

POWERSHELL
where.exe mvn
mvn -v

where.exe mvn useful है क्योंकि multiple Maven installations होने पर यह आपको discovered Maven launcher locations दिखा सकता है।

Linux/macOS configuration concept#

Maven command location check करने के लिए:

BASH
which mvn

अगर manually installed Maven shell startup configuration से expose किया गया है, तो नया terminal खोलने के बाद:

BASH
which mvn
mvn -v

run करें।

11. Maven Installation को mvn -v से Verify करना#

Maven installation का सबसे useful verification command है:

BASH
mvn -v

यह केवल Maven version नहीं बताता।

यह Maven और Java environment के बीच connection भी verify करता है।

Successful report में सामान्यतः इस तरह की information होती है:

Information Meaning
Apache Maven version कौन-सा Maven release execute हुआ
Maven home Maven installation किस directory से run हो रहा है
Java version Maven को run करने वाला Java runtime
Java vendor Java distribution/provider
Java runtime/home information Maven किस Java installation का use कर रहा है
OS information Operating system और architecture details

Exact formatting environment और Maven version के अनुसार अलग हो सकती है।

Maven version सही होना#

अगर आपने एक specific Maven installation configure किया है लेकिन mvn -v किसी और version को दिखा रहा है, तो संभव है machine पर multiple Maven installations हों।

Windows पर:

POWERSHELL
where.exe mvn

Linux/macOS पर:

BASH
which mvn

से discovered launcher check करें।

Java version सही होना#

mvn -v में दिखाई देने वाला Java version विशेष रूप से important है।

यह वही Java runtime है जिसके ऊपर Maven process चल रहा है।

मान लीजिए:

BASH
java -version

आपकी expectation के अनुसार version दिखाता है, लेकिन:

BASH
mvn -v

अलग Java environment report करता है।

तब JAVA_HOME, PATH, shell configuration और tool-specific environment configuration inspect करना चाहिए।

Key Idea

Maven installation verify करने का final goal केवल "mvn command चल गई" नहीं है। Maven और intended Java environment दोनों सही होने चाहिए।

12. Common Installation Problems और उनके Fixes#

Problem 1 — mvn command not found#

Symptom Windows पर इस तरह हो सकता है कि mvn recognized command नहीं है।

Linux/macOS पर shell command not found बता सकता है।

सबसे common cause है:

Maven bin directory PATH में नहीं है।

Fix flow:

  1. Maven installation directory locate करें।
  2. उसके अंदर bin directory confirm करें।
  3. उस directory को PATH में add करें।
  4. नया terminal खोलें।
  5. mvn -v फिर run करें।

Problem 2 — JAVA_HOME incorrect है#

अगर Maven Java environment से संबंधित error देता है, तो JAVA_HOME check करें।

Common mistake:

JAVA_HOME → JDK root की जगह JDK bin directory

सही mental model:

JAVA_HOME → JDK root

PATH → %JAVA_HOME%\bin या equivalent Java executable directory

Problem 3 — java चलता है लेकिन javac नहीं चलता#

अगर:

BASH
java -version

काम करता है लेकिन:

BASH
javac -version

नहीं चलता, तो development environment incomplete या incorrectly configured हो सकता है।

Possible causes:

  • केवल runtime-oriented Java installation available है।
  • JDK installed है लेकिन उसका bin expected PATH पर नहीं है।
  • multiple Java installations conflict कर रही हैं।

Problem 4 — Maven गलत Java version use कर रहा है#

यह बहुत important real-world problem है।

Machine पर JDK 17 और JDK 21 दोनों हो सकते हैं।

Terminal एक Java version resolve कर सकता है, IDE दूसरा और Maven तीसरे environment configuration से start हो सकता है।

Diagnosis के लिए compare करें:

BASH
java -version
javac -version
mvn -v

फिर JAVA_HOME और executable location inspect करें।

Windows:

POWERSHELL
$env:JAVA_HOME
where.exe java
where.exe javac
where.exe mvn

Linux/macOS:

BASH
echo "$JAVA_HOME"
which java
which javac
which mvn

Problem 5 — Environment change के बाद भी पुराना result आ रहा है#

अगर आपने PATH या JAVA_HOME update किया लेकिन existing terminal अभी भी old value use कर रहा है, तो नया terminal खोलें।

Environment changes हर running process में automatically retroactively update नहीं होते।

Problem 6 — Multiple Maven installations#

मान लीजिए आपने पहले package manager से Maven install किया था।

बाद में binary distribution भी configure कर दिया।

अब mvn -v unexpected version दिखा सकता है।

यह अक्सर PATH ordering problem होती है।

Shell को PATH में जो relevant executable पहले मिलता है, वह execute हो सकता है।

इसलिए command location check करना जरूरी है।

Problem 7 — Package-manager Maven version अलग है#

Package manager successfully Maven install कर सकता है, लेकिन repository में available version manually downloaded Apache distribution से अलग हो सकता है।

यह necessarily installation failure नहीं है।

Team या course requirement के साथ version compare करें।

अगर exact version consistency जरूरी है, तो environment standardize करें।

13. Complete Verification Sequence#

एक clean Maven setup verify करने के लिए इस order का use कर सकते हैं।

Step 1 — Java runtime#

BASH
java -version

Expected observation:

Java command successfully execute होनी चाहिए और intended Java version identify होना चाहिए।

Step 2 — Java compiler#

BASH
javac -version

Expected observation:

Java compiler available होना चाहिए।

Step 3 — JAVA_HOME#

Windows PowerShell:

POWERSHELL
$env:JAVA_HOME

Linux/macOS:

BASH
echo "$JAVA_HOME"

Expected observation:

Value intended JDK root की तरफ point करनी चाहिए।

Step 4 — Maven command location#

Windows:

POWERSHELL
where.exe mvn

Linux/macOS:

BASH
which mvn

Expected observation:

Discovered Maven launcher intended installation से आना चाहिए।

Step 5 — Maven runtime verification#

BASH
mvn -v

अब तीन चीजें विशेष रूप से compare करें:

  1. Maven version
  2. Maven home
  3. Java version और Java runtime/home information

अगर ये expected environment के साथ match करते हैं, तो Maven build environment का basic setup successful है।

14. Interview Preparation#

What is the difference between JAVA_HOME and PATH in a Maven setup?Show Answer

JAVA_HOME identifies the JDK installation root, while PATH tells the shell where to search for executable commands such as java, javac, and mvn.

Simple meaning: JAVA_HOME Java installation की location बताता है, जबकि PATH command discovery के लिए directories की list देता है।

Why can java -version work while mvn is still not recognized?Show Answer

Java may already be available through PATH, while Maven's bin directory is missing from PATH.

इस case में Java installation necessarily broken नहीं है। Problem Maven command की discoverability में हो सकती है।

Why is mvn -v useful during Maven setup troubleshooting?Show Answer

mvn -v verifies that Maven can start and reports the Maven version, Maven home, Java runtime information, and operating-system details.

इसलिए यह केवल version command नहीं है। यह Maven और Java environment का quick diagnostic command भी है।

Does JAVA_HOME normally point to the JDK bin directory?Show Answer

No. JAVA_HOME should normally point to the JDK root directory. The JDK's bin directory can be added separately to PATH.

यह distinction environment configuration की सबसे common beginner mistakes में से एक को avoid करता है।

15. Recap#

इस chapter से सबसे important बातें:

  • Maven एक Java-based build tool है, इसलिए सही Java environment पहले चाहिए।
  • java -version के साथ javac -version भी verify करना useful है।
  • JAVA_HOME सामान्यतः JDK root directory को point करता है।
  • executable directories PATH में रखी जाती हैं।
  • Maven के bin directory को PATH में रखने से mvn command terminal से available होती है।
  • Maven को binary distribution या package manager दोनों तरीकों से install किया जा सकता है।
  • package manager आसान हो सकता है, लेकिन available Maven version repository पर depend कर सकता है।
  • environment changes के बाद नया terminal खोलना useful है।
  • mvn -v Maven version के साथ Maven Home और Java runtime information भी verify करता है।
  • java working और mvn failing होने का मतलब अक्सर Maven PATH configuration problem हो सकती है।
  • multiple Java या Maven installations होने पर where/which, JAVA_HOME, PATH और mvn -v को साथ में देखकर diagnosis करना चाहिए।
Summary

एक reliable Maven environment में terminal सही mvn launcher खोजता है, Maven intended Java runtime पर start होता है, और mvn -v दोनों environments की expected information report करता है।

Interactive learning

Practice lab

Apply this chapter with guided activities, immediate feedback, explanations, and retry.

Practice loads when this section enters view.