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