Skip to content

A Leiningen plugin to deploy uberjars to Maven repositories, including private ones hosted on S3 and using AWS Default Credential Provider Chain.

License

Notifications You must be signed in to change notification settings

ammazza/lein-deploy-uberjar

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lein-deploy-uberjar

A Leiningen plugin to deploy uberjars (or fat jars) to a Maven repository.

This plugin supports explicitly skipping authentication methods supported natively by Leiningen and delegating authentication to the Amazon Web Services Default Credential Provider Chain. This enables deploying uberjars to a private repository hosted on S3, in combination with this other plugin.

Clojars Project

License

Copyright (C) 2012 Utah Street Labs

Copyright (C) 2017 CSIRO Data61

This version started as one in a series of forks of the original by the Utah Street Labs. None of the intermediate authors added a copyright notice: the code may contain contributions from the GitHub users Moocar, RallySoftware and likely.

Last but not least, this plugin is based on code originally extracted from Leiningen, copyright (C) 2009-2017 Phil Hagelberg, Alex Osborne, Dan Larkin, and contributors.

Distributed under the Eclipse Public License, the same as Clojure. See file COPYING.txt.

Usage

This is a plugin for Leiningen, an awesome build tool for Clojure, not an independent program. See the official Leiningen Tutorial on how to get started using Leiningen.

Installation

This plugin is distributed in binary form through Clojars, which is automatically searched for dependencies by Leiningen.

All you need to get going it to modify your project's project.clj file, adding the plugin to the :plugins section:

:plugins [[org.ammazza/lein-deploy-uberjar "2.1.0"]
          ...] ;; Other plugins

Installing from the sources

If you're interested in installing this plugin from its source code, assuming Leiningen (lein command) is already installed on your system, issue the following commands in a terminal:

git clone https://github.com/ammazza/lein-deploy-uberjar.git
cd lein-deploy-uberjar
lein install

The last command will install the plugin in your local maven cache (e.g. ~/.m2/repository on GNU/Linux systems).

Optionally, before lein install, you can run the tests. Note that currently the test suite is not comprehensive and only covers functions added since the project was last forked.

lein test

Repositories

Artifact repositories must be specified inside project.clj, using either :repositories or :deploy-repositories. For instance, to specifiy a repository hosted on S3, bucket my-s3-bucket:

:repositories [["snapshots" {:url "s3p://my-s3-bucket/snapshots" :no-auth true}]
               ["releases" {:url "s3p://my-s3-bucket/releases" :no-auth true}]] 

Use of URLs like the above requires the s3-wagon-private plugin, which must be added to project.clj like so:

:plugins [[s3-wagon-private "1.3.0"]
          ...] ;; Other plugins

Uberjar deployment

To deploy a project uberjar issue this command

lein deploy-uberjar [repository]

The optional repository is the label assigned in the :repositories configuration, i.e. the string before the URL (snapshots and releases in the example above). If no repository is specified, the suffix -SNAPSHOT in the version string will be used to identify snapshots.

Note that this plugin appends the qualifier _-stanalone to the uberjars. As a consequence snapshot uberjars will not be timestamped. The idea is that only one uberjar is ever available, with the latest deployment. This behaviour is intentional and limits space consumption on the repository. It may become configurable in the future.

About

A Leiningen plugin to deploy uberjars to Maven repositories, including private ones hosted on S3 and using AWS Default Credential Provider Chain.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Clojure 100.0%