Chapter 6. Using the Corporate POM

Table of Contents

6.1. Defining the Corporate POM
6.2. Defining the Corporate Repository

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).

6.1. Defining 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.