如何使用sbt-onejar跳过在程序集中执行测试?

时间:2015-01-26 07:19:35

标签: sbt onejar

有人可以帮助解决这个项目文件的问题,因为尽管有test in assembly := {},测试总是会运行吗?

import sbt._
import Keys._
import org.scalatra.sbt._
import org.scalatra.sbt.PluginKeys._
import com.mojolly.scalate.ScalatePlugin._
import ScalateKeys._
import com.github.retronym.SbtOneJar
import com.earldouglas.xsbtwebplugin.PluginKeys._
import com.earldouglas.xsbtwebplugin.WebPlugin._
import sbtassembly.Plugin._
import AssemblyKeys._
import sbtassembly.Plugin.AssemblyKeys._


object MyAppBuild extends Build {
  val Organization = "my.organization"
  val Name = "myapp"
  val Version = "0.1.0-SNAPSHOT"
  val ScalaVersion = "2.11.1"
  val ScalatraVersion = "2.3.0"

  // settings for sbt-assembly plugin
  val myAssemblySettings = assemblySettings ++ Seq(

// handle conflicts during assembly task
mergeStrategy in assembly <<= (mergeStrategy in assembly) {
  (old) => {
    case PathList("javax", "servlet", xs @ _*)         => MergeStrategy.first
    case PathList(ps @ _*) if ps.last endsWith ".html" => MergeStrategy.first
    case "application.conf" => MergeStrategy.concat
    case "unwanted.txt"     => MergeStrategy.discard
    case x => old(x)
  }
},

// copy web resources to /webapp folder
resourceGenerators in Compile <+= (resourceManaged, baseDirectory) map {
  (managedBase, base) =>
    val webappBase = base / "src" / "main" / "webapp"
    for {
      (from, to) <- webappBase ** "*" x rebase(webappBase, managedBase / "main" / "webapp")
    } yield {
      Sync.copy(from, to)
      to
    }
}
  )

  lazy val project = Project (
    "myapp",
    file("."),
    settings = Defaults.defaultSettings ++ ScalatraPlugin.scalatraWithJRebel ++
  SbtOneJar.oneJarSettings ++
  scalateSettings ++ Seq(
  organization := Organization,
  name := Name,
  version := Version,
  scalaVersion := ScalaVersion,
  port in container.Configuration := 9000,

  /****** This has no effect *****/
  test in assembly := {},
  /*******************************/

  resolvers ++= Seq (Classpaths.typesafeReleases,
    "anormcypher" at "http://repo.anormcypher.org/"
    /** other repos skipped  */

  libraryDependencies ++= Seq(
    "org.scala-lang" % "scala-reflect" % ScalaVersion,
    "org.scala-lang" % "scala-compiler" % ScalaVersion,
    "org.scalaz" %% "scalaz-core" % "7.0.6",
    /** other dependencies skipped */

  ),
  scalateTemplateConfig in Compile <<= (sourceDirectory in Compile){ base =>
    Seq(
      TemplateConfig(
        base / "webapp" / "WEB-INF" / "templates",
        Seq.empty,  /* default imports should be added here */
        Seq(
          Binding("context", "_root_.org.scalatra.scalate.ScalatraRenderContext", importMembers = true, isImplicit = true)
        ),  /* add extra bindings here */
        Some("templates")
      )
    )
  }
)
  ).settings(myAssemblySettings:_*)
.settings( parallelExecution in ThisBuild := false : _* )

}

0 个答案:

没有答案