ดูรุ่น mvn ต่อไปนี้ ฉันสงสัยว่าทำไมคำสั่ง "ซึ่ง" ไม่ให้ข้อมูลที่ถูกต้องแก่คุณ
LM-SIN-00676037:myproject haibliu$ mvn --version
Apache Maven 3.0.3 (r1075438; 2011-03-01 01:31:09+0800)
Maven home: /usr/share/maven
Java version: 1.6.0_37, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x", version: "10.8", arch: "x86_64", family: "mac"
LM-SIN-00676037:myproject haibliu$ which mvn
/usr/local/bin/mvn
LM-SIN-00676037:myproject haibliu$ /usr/local/bin/mvn --version
Apache Maven 3.0.4 (r1232337; 2012-01-17 16:44:56+0800)
Maven home: /usr/local/Cellar/maven/3.0.4/libexec
Java version: 1.6.0_37, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: en_US, platform encoding: MacRoman
OS name: "mac os x", version: "10.8", arch: "x86_64", family: "mac"
เพื่อชี้แจง: / usr / bin / mvn มาพร้อมกับ Max OS X ของฉัน, Mountain Lion และฉันใช้ Homebrew เพื่อติดตั้ง / usr / local / bin / mvn หลังจากนั้นฉันเปลี่ยนลำดับของ PATH ใน / etc / path
LM-SIN-00676037:myproject haibliu$ cat /etc/paths
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
LM-SIN-00676037:myproject haibliu$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
นั่นคือทั้งหมดที่ฉันทำ และฉันใช้เปลือกทุบตี
/usr/local/bin/mvnหลังจากใช้งานmvnเชลล์อินสแตนซ์ปัจจุบันหนึ่งครั้งหรือไม่? Bash มีแนวโน้มที่จะแคชตำแหน่งไบนารี
type mvnและpwdควรแจ้งให้คุณทราบหากผลลัพธ์ถูกแฮชโดยเชลล์และหากคุณเกิดขึ้นในไดเร็กทอรีที่พา ธ เลือก mvn โลคัลมากกว่าหนึ่ง "ซึ่ง" ค้นหาก่อน ... ถ้า mvn ถูกแฮช คุณเพียงแค่เริ่มต้นเชลล์ใหม่หรือบังคับให้มีการรีบาวด์ อย่าลังเลที่จะเขียนคำตอบนี้ขึ้นมาเมื่อคุณได้เอ่ยถึงคำใดข้อหนึ่งข้างต้นซึ่งทำให้คุณเศร้าโศกชั่วคราวด้วย mvn
which -aแล้วดูว่าเกิดอะไรขึ้น