SBT
  • Learn
  • Download
  • Community
  • Top

 

sbt

Community Plugins

ensuring everything is possible.

The SBT Organization contains a SBT Community Plugins project. This project aims to unify all the SBT plugins in the community and ensure their compatibility and timely releases with new versions of SBT. There is also a list of plugins that is up-to-date.

  • Available Plugins
  • SBT Organization
  • Community Ivy repository
  • Community Plugin Build
  • Community Ivy Repository ####

    Typesafe, Inc. has provided a freely available Ivy Repository for SBT projects to make use of.

    If you would like to publish your project to this Ivy repository, first contact Joshua.Suereth@typesafe.com and request privileges (we have to verify code ownership, rights to publish, etc.). After which, you can deploy your plugins using the following configuration:

    publishTo := Some(Resolver.url("sbt-plugin-releases", new URL("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases/"))(Resolver.ivyStylePatterns))
    
    publishMavenStyle := false
    

    You'll also need to add your credentials somewhere. I use a ~/.sbt/sbtpluginpublish.sbt file:

    credentials += Credentials("Artifactory Realm", "scalasbt.artifactoryonline.com", "jsuereth", "@my encrypted password@")
    

    Where @my encrypted password@ is actually obtained using the following instructions.

    Note: Your code must abide by the repository polices.

    To automatically deploy snapshot/release versions of your plugin use the following configuration:

    publishTo <<= (version) { version: String =>
       val scalasbt = "http://scalasbt.artifactoryonline.com/scalasbt/"
       val (name, url) = if (version.contains("-SNAPSHOT"))
                           ("sbt-plugin-snapshots", scalasbt+"sbt-plugin-snapshots")
                         else
                           ("sbt-plugin-releases", scalasbt+"sbt-plugin-releases")
       Some(Resolver.url(name, new URL(url))(Resolver.ivyStylePatterns))
    }
    

    Note: ivy repositories currently don't support Maven-style snapshots.

  • SBT Organization

    The SBT Organization is available for use by any SBT plugin.
    Developers who contribute their plugins into the community organization will still retain control over their repository and its access. The Goal of the SBT organization is to organize SBT software into one central location.

    A side benefit to using the SBT organization for projects is that you can use gh-pages to host websites in the http://scala-sbt.org domain.

  • SBT Community Plugin Build

    The SBT Community Plugins project aims to build all SBT plugins in a single build.
    This should enable thorough testing of plugins and ensure that plugins work together.