Overview

Atlassian Platform POMs

Requirements

Maven 3 or later

Usage

In your project's parent pom, import via dependency management:

<properties>
    <platform.version>2.22.7</platform.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.atlassian.platform</groupId>
            <artifactId>platform</artifactId>
            <version>${platform.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>com.atlassian.platform</groupId>
            <artifactId>third-party</artifactId>
            <version>${platform.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

In your modules, import the desired dependencies with a scope, but not a version e.g.

<dependencies>
    <dependency>
        <groupId>com.atlassian.sal</groupId>
        <artifactId>sal-api</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-library</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

Known Issues

When using maven 2.1.0: dependencies that use import scoped pom artifacts cannot resolve that pom artifact. See http://jira.codehaus.org/browse/MNG-3553

Documentation

Releasing

The Bamboo project EcoBAC/JPP includes a manual release stage.

This uses the Java Platform Auto Release Script to release form a temporary release branch.

For one of the stable branches, 2.20.x, 2.21.x and 2.22.x at the time of writing, this will produce a full SemVer numbered release. For feature branches it will generate a temporary #.#.#-{last commit hash} release.

TODO

Robbie Gates: Can we add a link to a poster child (RefApp ?) once we have one ? E.g. See (RefApp pom.xml)[bitbucket link to specific version of pom that demonstrates usage] for an example.

Robbie Gates: Can we add instructions for the approved way to upgrade a dependency beyond the platform version ? Is it to see the relevant proj.version property ? Where is the canonical list of proj names ?