Org Config Specification

Having defined the underlying concepts needed for this framework, we can now define an Organization's common build configuration.

It is a JSON document which consists of a few sections backed by a JSON schema

{
  "orgId": "my-org-id",
  "internalRepo": {...},
  "snapshotsRepo": {...},
  "releasesRepo": {...},
  "publishing": {...},
  "devConfig": {...}
}

orgId is a simple String identifier for your organization (usually a Github username), and is necessary to store temporary files while working with local code bases.

The devConfig attribute specifies default versions of optional tools that you could use in your code bases. In the current version of this framework, the set of recommended tools are PMD and j8spec. Note that these are completely optional and you are not obligated to use them along with this framework.

The remaining three *Repo attributes define the three components we saw in the architecture diagram in previous chapters. They establish where your Maven repositories (if any) are located and what credentials they require.

These, along with the publishing attribute will be discussed in the next section.