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

Reply via email to