Basic operations
This tool is shipped with Maven and provides a facility to up or downgrade the current installation to a different version, including a timestamped shapshot. The target environment is setup so that there only one Maven folder on the machine and you control what's installed there
How does it work.
There is a new command line script, shipped with maven - mvnUpdate. When you start it, it connects to a pre-configured repository, retrieves all available version and shows them as a selection list.
If you want fancy - run mvnUpdate -g and it will display the same in gui;
That was the hardest part, now - just select a version and wait for the tool to update Maven instance.
Technical details
What happens behind the scene.
First of all - the updater connects to a repository and find a all the available versions. Then - after you select a version, it downloads version's CD - Configuration Descriptor and calculates a transitive closure for it. Then it reads the transitive closure of the current installation, and calculates which binaries should be added and which - deleted, delta+ and delta-.
Then it downloads all the delta+ binaries. If it some are not available - it stops the operation and warns you of the not found binaries. If all delta+ are available - updater removes delta- binaries and copies delta+ into maven home. And that is it - you have a new version installed.
CLI options
There are a lot of options available in this tool.
Short description of all available CLI options
-d, --show.details |
show detailed messages, be more talkative |
-g, --show.gui |
display GUI, you've seen this one above |
-h, --help |
displays this help screen |
-l, --show.local |
show local savepoints in the version selection list. This adds previously installed versions to the list |
-m, --maven.home |
maven instance root dir. This is the instance to update |
-r, --ver.repo |
repository url to prepend to the repository list |
-s, --settings |
settings file to use instead of /app/home/.m2/settings.xml |
-u, --cd.url |
url of the Configuration Descriptor. This allow us to send you a CLI to install an exact version |
-c, --closure |
This is mostly for Maven developers, to prepare CDs. expand dependencies from the supplied LDL to the full transitive closure |
-n, --no.test.binaries |
also for Maven developers - do not test closure binaries for existence when calculating it |
-t, --ztest |
this option is for testing only, and should not be used |