When using Maven (mvn) on OS X Terminal, how can I get tab-completion for Maven goals, plugin names, etc? Things like this:

mvn pa [TAB] -> mvn package

mvn je [TAB][TAB] -> mvn jetty:run
  • I don't use maven, but is there not a bash-completion option on the Macports install? Apr 18 '13 at 7:04
  • @ClaytonStanley: Not sure, but I doubt it, since Maven default distribution doesn't come with it. I installed Maven with Homebrew; no bash-completion out of the box.
    – Jonik
    Apr 18 '13 at 7:32

Maven doesn't ship with an auto-complete script, but there's a project on GitHub called Maven Bash Completetion.

Installation if you use Homebrew:

  1. brew tap homebrew/completions
  2. brew install maven-completion

Otherwise, use this command to download the latest script (to your home directory as ~/.maven-completion.bash):

wget https://raw.github.com/juven/maven-bash-completion/master/bash_completion.bash \
    -O ~/.maven-completion.bash

Then add this to your ~/.bash_profile:

if [ -f ~/.maven-completion.bash ]; then
  . ~/.maven-completion.bash

You can also manually copy the file from the github repo to your home directory and edit your bash profile as above should the homebrew or wget options not work for you.

That's it. After you restart bash (e.g. open a new Terminal window), Maven autocomplete should work.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .