Build Status


A repository of sbt plugins that I find useful.

  • sbt-bundler for integrating servers using sbt-revolver with clients built with Scala.js and scalajs-bundler
  • sbt-utils-maven for publishing GitHub projects to Maven Central
  • sbt-nodejs for working with Scala and Node.js projects

The Maven Central plugin populates the required POM XML and delegates publishing to sbt-sonatype. The user must provide a couple of values to correctly populate the POM XML, see Usage.


To use sbt-bundler:

addSbtPlugin("com.malliina" % "sbt-bundler" % "1.4.0")

To publish to Maven Central:

addSbtPlugin("com.malliina" % "sbt-utils-maven" % "1.4.0")

The Node.js plugin:

addSbtPlugin("com.malliina" % "sbt-nodejs" % "1.4.0")



Define your project:

// Scala.js project
val client = project

// Backend restarted with sbt-revolver
val server = project
    clientProject := client

To run:

sbt ~start

The start command will fingerprint assets generated by scalajs-bundler (via webpack) and make them available as resources to the server module. Any changes to either the client or server will rebuild and reload. See example/build.sbt for a minimal example.

Maven Central

To publish to Maven Central, enable the MavenCentralPlugin SBT autoplugin for your project:

val myLibrary = Project("my-library", file("."))

Define the following SBT settings in order to populate the Maven POM XML correctly:

gitUserName := "My GitHub Username Here",
developerName := "My Name Here"

To publish the artifacts, run:

sbt release

You need credentials to publish.

The generated POM XML declares a license of


Plugin NodeJsPlugin lets you run npm commands from the sbt shell.

val myApp ="."))

Then run e.g.

front ncu