mvnr: recursive mvn command line tool
sudo npm install -g mvnr
mvnr does not interpret any commands given to it, but simply ensures that commands are executed on any maven repository under the current working directory. Any command you can pass to mvn, will work with mvnr.
mvnr clean install -DskipTests
mvnr does do a bit of dependency analysis before executing to ensure it builds the least dependent modules first. This means that if you have a module which has a dependency on another module which also resides under the current working directory (cwd), then mvnr will build the dependency first. It will also ignore poms in subdirectories where the parent directory contains a pom.
So the follwing structure:
(cwd) ├── A │ └── B │ └── pom.xml // depends on E & C ├── C │ ├── D │ │ └── pom.xml // child of C, will not be built explicitly, but is assumed to be a child module │ └── pom.xml └── E └── pom.xml // depends on C
Will result in the build order:
git clone git://github.com/kenglxn/mvnr.git cd mvnr npm test