1. Learning Outcomes#
इस chapter को पूरा करने के बाद आप:
- समझ पाएँगे कि Maven चलाने के लिए कौन-कौन से runtime prerequisites चाहिए।
- installed JDK और Java environment को verify कर पाएँगे।
JAVA_HOMEऔर systemPATHका अलग-अलग purpose समझ पाएँगे।- Apache Maven को binary distribution से install करने का सही flow समझ पाएँगे।
- package manager से Maven installation का तरीका और उसका trade-off समझ पाएँगे।
- Maven के
bindirectory को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 से समझिए:
Rendering diagram…
Diagram could not be rendered.
जब आप terminal में:
mvn -vलिखते हैं, तो सबसे पहले shell PATH में mvn command खोजता है।
mvn मिलने के बाद Maven को Java runtime चाहिए।
यही कारण है कि Maven setup में दो अलग problems हो सकती हैं:
- Java सही configured है, लेकिन
mvncommand नहीं मिल रही। mvncommand मिल रही है, लेकिन Maven गलत Java version use कर रहा है।
इन दोनों problems को अलग-अलग समझना बहुत महत्वपूर्ण है।
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 करें:
java -versionफिर Java compiler check करें:
javac -versionPowerShell में JAVA_HOME देखने के लिए:
$env:JAVA_HOMEJava executable कहाँ से मिल रहा है, यह देखने के लिए:
where.exe java
where.exe javacअगर java और javac दोनों expected JDK installation से resolve हो रहे हैं, तो Java side का setup काफी हद तक सही है।
Linux या macOS पर verification#
java -version
javac -version
echo "$JAVA_HOME"
which java
which javacwhich आपको बताता है कि shell कौन-सा executable locate कर रहा है।
केवल 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
JAVA_HOME को JDK के bin folder पर point करना एक common beginner mistake है।
6. System PATH को समझना#
जब आप terminal में यह लिखते हैं:
javaया:
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 करें#
पहले:
java -versionऔर:
javac -versionrun करें।
अगर 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 इस तरह है:
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
bindirectory onPATH
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 है:
choco install mavenmacOS with Homebrew#
brew install mavenDebian/Ubuntu-based Linux#
sudo apt update
sudo apt install mavenSDKMAN-based installation#
जहाँ SDKMAN configured है:
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 देखें।
Rendering diagram…
Diagram could not be rendered.
यह 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 करें:
where.exe mvn
mvn -vwhere.exe mvn useful है क्योंकि multiple Maven installations होने पर यह आपको discovered Maven launcher locations दिखा सकता है।
Linux/macOS configuration concept#
Maven command location check करने के लिए:
which mvnअगर manually installed Maven shell startup configuration से expose किया गया है, तो नया terminal खोलने के बाद:
which mvn
mvn -vrun करें।
11. Maven Installation को mvn -v से Verify करना#
Maven installation का सबसे useful verification command है:
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 पर:
where.exe mvnLinux/macOS पर:
which mvnसे discovered launcher check करें।
Java version सही होना#
mvn -v में दिखाई देने वाला Java version विशेष रूप से important है।
यह वही Java runtime है जिसके ऊपर Maven process चल रहा है।
मान लीजिए:
java -versionआपकी expectation के अनुसार version दिखाता है, लेकिन:
mvn -vअलग Java environment report करता है।
तब JAVA_HOME, PATH, shell configuration और tool-specific environment configuration inspect करना चाहिए।
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:
- Maven installation directory locate करें।
- उसके अंदर
bindirectory confirm करें। - उस directory को
PATHमें add करें। - नया terminal खोलें।
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 नहीं चलता#
अगर:
java -versionकाम करता है लेकिन:
javac -versionनहीं चलता, तो development environment incomplete या incorrectly configured हो सकता है।
Possible causes:
- केवल runtime-oriented Java installation available है।
- JDK installed है लेकिन उसका
binexpected 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 करें:
java -version
javac -version
mvn -vफिर JAVA_HOME और executable location inspect करें।
Windows:
$env:JAVA_HOME
where.exe java
where.exe javac
where.exe mvnLinux/macOS:
echo "$JAVA_HOME"
which java
which javac
which mvnProblem 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#
java -versionExpected observation:
Java command successfully execute होनी चाहिए और intended Java version identify होना चाहिए।
Step 2 — Java compiler#
javac -versionExpected observation:
Java compiler available होना चाहिए।
Step 3 — JAVA_HOME#
Windows PowerShell:
$env:JAVA_HOMELinux/macOS:
echo "$JAVA_HOME"Expected observation:
Value intended JDK root की तरफ point करनी चाहिए।
Step 4 — Maven command location#
Windows:
where.exe mvnLinux/macOS:
which mvnExpected observation:
Discovered Maven launcher intended installation से आना चाहिए।
Step 5 — Maven runtime verification#
mvn -vअब तीन चीजें विशेष रूप से compare करें:
- Maven version
- Maven home
- 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 के
bindirectory कोPATHमें रखने सेmvncommand terminal से available होती है। - Maven को binary distribution या package manager दोनों तरीकों से install किया जा सकता है।
- package manager आसान हो सकता है, लेकिन available Maven version repository पर depend कर सकता है।
- environment changes के बाद नया terminal खोलना useful है।
mvn -vMaven version के साथ Maven Home और Java runtime information भी verify करता है।javaworking औरmvnfailing होने का मतलब अक्सर MavenPATHconfiguration problem हो सकती है।- multiple Java या Maven installations होने पर
where/which,JAVA_HOME,PATHऔरmvn -vको साथ में देखकर diagnosis करना चाहिए।
एक reliable Maven environment में terminal सही mvn launcher खोजता है, Maven intended Java runtime पर start होता है, और mvn -v दोनों environments की expected information report करता है।