Upon discussion with various institutions and SCAs, the decision has been taken by the CLE team to flatten the POM hierarchy for the tools within the CLE release. Combined with work such as
SAK-21389, SAK-21397, and KNL-861, this is expected to help rationalize the release process.
There is substantial rationale and there are various suggestions (to be detailed here and in Confluence), but the first step is to re-parent all tools in the release to master. This should have very little impact on the the tool POMs other than allowing significant duplication to be removed (repositories, dependencyManagement, and plugin configuration).
Other likely steps include:
1. Splitting materials to differentiate between the "corporate POM" (used to set base organization and configuration information) and the actual version/dependency management – both are in master now, forcing configuration like source layout on projects wishing to simply defer version management.
2. Using POM imports to include dependencyManagement sections across projects without inheriting or forcing shared items into master.
3. Setting up "dependency aggregation" POMs for the most common/useful sets of dependencies. These can be added as a simple dependency that transitively includes others. The best example is an analogue to sakai-edu-tool, where a single dependency could provide compile-time support for all of the modules covered by purepoms.
– more to come here –