Skip to content

Deploy SBT artifacts using Maven Artifact Resolver (formerly Eclipse Aether)

License

Notifications You must be signed in to change notification settings

arktekk/sbt-aether-deploy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6baa11e · Nov 14, 2023
May 20, 2021
Aug 11, 2023
Nov 14, 2023
Aug 11, 2023
May 19, 2021
May 20, 2021
Sep 24, 2018
Nov 14, 2023
Nov 14, 2023
Feb 10, 2020
May 10, 2020
Nov 14, 2023

Repository files navigation

SBT aether deploy plugin

Deploys sbt-artifacts using Maven Artifact Provider.

The same behaviour as Maven should be expected.

project/plugins.sbt

addSbtPlugin("no.arktekk.sbt" % "aether-deploy" % "0.29.1")

/** OR **/

addSbtPlugin("no.arktekk.sbt" % "aether-deploy-signed" % "0.29.1") // For sbt-pgp 2.x support

Breaking Changes

0.29.0

Support both old and new plugin layouts

Only one may be active at at time, so this differs from SBT.

Set key sbtPluginPublishLegacyMavenStyle := false to get new behaviour.

0.27.0

aether-deploy-signed now uses the new maven coordinates for sbt-pgp

0.25.0

sbt-pgp support now published separately, and requires aether-deploy-signed dependency declaration instead of aether-deploy to support zero configuration use of SignedAetherPlugin.

0.24.0

If you want to use sbt-pgp you need to use version 2.0.1 or higher.

0.18

The version to be used by the aetherCoordinates will be scoped using ThisBuild, to work better with the release plugin.

To get the old behaviour you will need to add this to your build.sbt:

aetherOldVersionMethod := true

Logging level of progress has been changed from info to debug.

You can turn off the progress logging by adding this to your build.sbt:

import aether.AetherKeys._

logLevel in aetherDeploy := Level.Info

Caveat

If you see errors similar to what is described in this ticket then you might want to check if you are using a global plugin.

There are known incompabilities with sbt-pgp if sbt-pgp is used as a global plugin.

Build file

publishTo := {
  if ((version in ThisBuild).value.endsWith("SNAPSHOT")) {
    Some(Opts.resolver.sonatypeSnapshots)
  } else {
    Some(Opts.resolver.sonatypeStaging)
  }
}

This plugin is now an Autoplugin, so there is no need to add extra config to make it work.

Override default publish task

overridePublishSettings

Override default publish-local task

overridePublishLocalSettings

Override both publish and publish-local task

overridePublishBothSettings

Overriding the publish-signed task (applies to 'aether-deploy-signed' only)

overridePublishSignedSettings

Overriding the publish-signed-local task (applies to 'aether-deploy-signed' only)

overridePublishSignedLocalSettings

Overriding the publish-signed and publish-signed-local task (applies to 'aether-deploy-signed' only)

overridePublishSignedBothSettings

Add credentials

credentials += Credentials(Path.userHome / ".sbt" / ".credentials")

Usage

To deploy to remote Maven repository.

sbt aetherDeploy

To deploy to local maven repository.

sbt aetherInstall

Usage if the publish/publish-local task is overriden

To deploy to remote Maven repository.

sbt publish

To deploy to local maven repository.

sbt publishLocal

Proxies

Documentation for proxies can be found here

Using the plugin with sbt-pgp-plugin 1.1.2-1 or higher and aether-deploy 0.24.0 or below

You will need to add the sbt-pgp-plugin as described here.

enablePlugins(SignedAetherPlugin) // Only required for 0.24.0 and below. SignedAetherPlugin is
                                  // automatically enabled if sbt-pgp is enabled on the project.

disablePlugins(AetherPlugin) // Only required for 0.24.0 and below.

This should now allow aether-deploy task to work with the sbt-pgp-plugin