Project Setup 

Modules and Artifacts 

Unfiltered’s core, binding, server, and other modules are published with references to their underlying dependencies, so that applications need only explicitly depend on Unfiltered and other top-level dependencies. Keep in mind that server modules and binding modules are not generally co-dependent, so that if you are using for example unfiltered-jetty, you will also need to specify unfiltered-filter.

Each module is cross-built against several versions of Scala and published to the sonatype repository with the organization-id “net.databinder”. The modules have the Scala version they are built against appended. For Scala 2.11+, the full artifact names are as follows:

Source Dependencies 

Some Unfiltered modules depend on external Scala libraries which are not cross-built across our supported versions of Scala. The overhead to produce binary artifacts for these modules is great, as we must maintain a map of Scala versions to compatible library versions, and also handle the case where there is no compatible version.

Instead we tag releases of these modules in github and encourage their use as source dependencies, which you may build locally against a compatible set of artifacts.

Build Tools 

Configuring sbt projects 

When using sbt with binary dependencies it’s best to have the Scala version automatically appended so it will always match your project’s. In an sbt 0.12.x project:

libraryDependencies += "net.databinder" %% "unfiltered-filter" % "0.8.4"

To use source dependencies with sbt, create a project build such as project/build.scala:

import sbt._
object MyApp extends Build
{
  lazy val root =
    Project("root", file(".")) dependsOn(unfilteredScalate)
  lazy val unfilteredScalate =
    uri("git://github.com/unfiltered/unfiltered-scalate#0.8.4")
}

Maven 

For Maven, specify the full artifact name:

<dependency>
  <groupId>net.databinder</groupId>
  <artifactId>unfiltered-filter_2.11</artifactId>
  <version>0.8.4</version>
</dependency>

To use source dependencies with Maven, your best bet is to check out the project as a submodule.

Template Projects 

For a new project the easiest the easiest option to apply a giter8 template for the Unfiltered backend of your choice.

So for example:

g8 n8han/unfiltered-netty --name=justplayin
cd justplayin
sbt # *or whatever your 0.11.x command is
> run
Fork me on GitHub