There are many facets to consider when implementing even the most basic
software configuration management (SCM). For Java, with its import mechanism,
these simple goals often become unmanageable when the source code tree grows
beyond a certain point of complexity.
This is mainly due to the reticulate interdependencies that arise within the
source code tree as it evolves. Also, because code is seldom (if ever)
retired, the code base continues to grow, causing this network to become
increasingly complicated over time.
In this article I explore the evolution of the typical Java source code tree
and the underlying relationships that make even basic Java SCM problematic. I
also suggest a simple way to manage source code relationships to meet basic
SCM goals.
Understanding t... (more)