To keep the POMs (project object models) sane and maintainable, here's my suggestion of a few simple rules.
As with many other things in development - a bit more work for whoever does the changes that will save a lot of work to future maintainers.
- Define dependency versions in
- If there are multiple dependencies from one project, define the version in properties.
- Version properties are named
- If you exclude a transitive dependency, write a comment why.
- Group dependencies by their purpose and origin:
- Test deps, platform deps (Dropwizard), In-house deps (CSL), project deps (that is, other modules of the same project).
- Don't clutter the pom.xml with explicitely stating the defaults, e.g.