project setup
scala version
We currently publish artifacts for Scala versions 2.11 and 2.12, so be
sure your project is using a compatible Scala version. For example,
your build.sbt
file may have:
scalaVersion := "2.11.12"
or:
scalaVersion := "2.12.6"
using sonatype artifacts
Include the following two lines in your build.sbt
to declare the dependency:
resolvers += Resolver.sonatypeRepo("releases")
libraryDependencies += "org.longevityframework" %% "longevity" % "0.27.0"
Include one of the following lines to bring in the library dependencies for the back end of your choice:
libraryDependencies += "org.longevityframework" %% "longevity-cassandra-deps" % "0.27.0"
libraryDependencies += "org.longevityframework" %% "longevity-mongodb-deps" % "0.27.0"
libraryDependencies += "org.longevityframework" %% "longevity-sqlite-deps" % "0.27.0"
All longevity artifact versions move in lock-step, so it can be convenient to store it in a variable, like so:
val longevityVersion = "0.27.0"
libraryDependencies += "org.longevityframework" %% "longevity" % longevityVersion
libraryDependencies += "org.longevityframework" %% "longevity-cassandra-deps" % longevityVersion
libraryDependencies += "org.longevityframework" %% "longevity-migrations" % longevityVersion
enabling macro annotations
You will most likely want to use the macro annotations provided in package
longevity.model.annotations
. To do so, you will need to add Macro
Paradise to your build, like so:
addCompilerPlugin("org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full)
supplying optional dependencies
There are a number of optional longevity features that require you to bring in other library
dependencies yourself. If you want to use cats.effect.IO
as an effect, you will need
cats-effect:
libraryDependencies += "org.typelevel" %% "cats-effect" % "0.10.1"
If you want to stream query results to Akka Streams:
libraryDependencies += "com.typesafe.akka" %% "akka-stream" % "2.5.12"
If you want to stream query results to FS2:
libraryDependencies += "co.fs2" %% "fs2-core" % "0.10.4"
If you want to stream query results to iteratee.io:
libraryDependencies += "io.iteratee" %% "iteratee-core" % "0.17.0"
If you want to stream query results to Play enumerators:
libraryDependencies += "com.typesafe.play" %% "play-iteratees" % "2.6.1"
If you want to use longevity.test.RepoCrudSpec
or longevity.test.QuerySpec
to build integration
tests, you will need ScalaTest:
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.5"