Abstract
This chapter describes how the code should use the corporate POM as a parent. It is applicable for contributors to any of the sister projects. Contributors to Star Objects who want to build and deploy the corporate POM itself should refer to Chapter 12, The Corporate POM.
It's common practice to use a "corporate" POM
(sometimes also inaccurately known as a super POM) to
act as a common parent for a group of related projects. As such, the
Star Objects provides a corporate POM -
org.starobjects.star:corporate
- for the sister
projects that defines common dependency versions and configuration for
build plugins and reporting plugins. This corporate
POM also inherits from
org.nakedobjects:release:4.0.x
so implicitly
defines the dependencies for Naked Objects itself.
Because the corporate POM is only a single pom artifact and is independent of any given project, it is numbered 1, 2, 3,... There is also no use of the snapshot mechanism. This is consistent with the approach taken by Apache themselves (at the time of writing Apache's own corporate POM was ~14).
This chapter assumes that the corporate POM has been released (as described in Chapter 12, The Corporate POM).
The corporate POM is
org.starobjects.star:corporate
. The
pom.xml
in the main module
(see Section 3.1.1, “The 'main' module”) should define it as a
parent:
<parent> <groupId>org.starobjects.star</groupId> <artifactId>corporate</artifactId> <version>1</version> </parent>
Typically the version should be the highest available. You can browse the Star Objects repository (see Section 6.2, “Defining the Corporate Repository” below) to see which is the highest.