I have my install set up somewhat like Ant does its install, with Ant's necessary libs as a child directory of the ANT install location.
I thought that it would be releatively clean to do that with maven. So I have the root directory: /usr/local/maven and My lib.repo as a child of that: /usr/local/maven/lib.repo However, in the bootstrap build, maven tries to delete the install directory--thus trying to delete lib.repo. Because we are using libraries in lib.repo, the install fails. What is more fundamental is the concept of an installer. An app that is installed should keep track of what it installed, so that it can remove it later. That way the uninstallation of Maven is more intelligent--and does not accidentally delete files that were manually added by the user. One way this is accomplished is by the use of an install descriptor. M$, Cygwin, and several other installer programs use this approach. The descriptor file lists all the information necessary to clean out the install (it can be as simple as a list of files, or it can be as complex as an ant file) automatically. The installer (a new maven ant task?) would populate the descriptor with a reference to each and every file that is copied to the install location. The uninstaller (again a new maven ant task?) would read the descriptor and remove all the necessary files. I think this will be the best way to manage installs. Blindly deleting a directory is fine if the directory is supposed to be temporary (like the build directory). It is not not fine when the user may have taken the time to update the look and feel of the site--and the new install wipes out his work! -- "They that give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." - Benjamin Franklin