Deployment Submodule for paradoxical repos
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
gpg making a common deployment module Apr 22, 2016
mvn DIRNAME? Nov 15, 2017
.gitignore fix version issue Aug 4, 2017
.travis.yml Update .travis.yml Nov 16, 2017
LICENSE Initial commit Apr 22, 2016 Update Nov 16, 2017
default-travis.yml adding deployment base pom Jul 8, 2016 Comments Nov 15, 2017 adding deployment base pom Jul 8, 2016

Paradoxical deployments

Deployment submodule for paradoxical repos

Setting up a repo

Add a .deployment folder as a submodule refering to this repo

git submodule add -b master .deployment

Configure your .travis.yml

Add the following to your travis configuration

  submodules: false
  # --remote
  # Instead of using the superproject’s recorded SHA-1 to update the submodule,
  # use the status of the submodule’s remote-tracking (branch.<name>.remote) branch (submodule.<name>.branch).
  # --recursive
  - git submodule update --init --remote --recursive
- ./.deployment/


Travis needs to be setup with all the secure variables we use for deployment. These values should be pre-shared

SONATYPE_USER='paradoxicalio' \

Generic publication

For language agonstic deployment we expose a hook into the root folder into a file called

This file should have the following methods defined:

function snapshot() {
   # what to do on snapshots

function release() {
   # what to do on release. The $REVISION env var is available

You should point your GPG keyring configurations to:

pgpPublicRing := new File(".deployment//gpg/paradoxical-io.pubgpg")
pgpSecretRing := new File(".deployment//gpg/paradoxical-io-private.gpg")

As an example from a scala build project.

Maven Support

Configure your pom.xml

Setup the version


Option 1: Using the parent pom

As of deployment 1.0 we now support a parent pom option for configuring your projects. This makes setting up a new deployment project super easy.

Add the parent pom


Make sure you override the parents default settings

The parent POM sets up some default settings required to publish to maven central, however your project will likely have its own values

Configure Project details

Make sure you define your own values for:

<name>Paradoxical deployment base pom</name>
<description>A base pom with deployment settings for paradoxical projects</description>

Configure your source control details (SCM)


Option 2: Manual pom configuration

If you cannot/choose not to go the route of parent pom then you have some manual steps to configure...

Add a revision property default


Ensure you have the repository defined


Ensure you have the nexus plugin configured


Add a release profile


Enabling maven caching

If you're adding this to a library then be sure to enable maven caching to improve build speeds

sudo: false
  - $HOME/.m2

More guidance