Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.github.retronym.SbtOneJar._
- import sbt.Keys._
- import scala.reflect.io
- def `app.Name` = "Gr8Proj"
- def `version.major` = 0
- def `version.minor` = 0
- def buildNumber = 100500
- def `app.version` = `version.major` + "." + `version.minor` + "." + buildNumber
- def finalName = `app.Name` + "-" + `app.version` + ".jar"
- name := `app.Name`
- version := `app.version`
- scalaVersion := "2.11.0"
- // disable using the Scala version in output paths and artifacts
- crossPaths := false
- oneJarSettings
- artifactName in oneJar := { (sv: ScalaVersion, module: ModuleID, artifact: Artifact)
- => "_release/" + finalName }
- def copyExternalResourcesTask = Def.task {
- val srcExternalResources = baseDirectory.value / "src/main/external-resources"
- val destExternalResources = crossTarget.value / "_release"
- IO.copyDirectory(srcExternalResources, destExternalResources)
- //perform some ad-hoc filtering (walk through output directory recursively)
- //TODO: revisit replacement part, appears to be slow
- io.Directory(destExternalResources) walkFilter { p =>
- !p.isDirectory && !p.name.endsWith(".jar") && !p.name.endsWith(".zip")
- } foreach (p => mapFile(p.toFile, _.replaceAllLiterally("${finalName}", finalName)))
- }
- oneJar <<= oneJar dependsOn copyExternalResourcesTask
- libraryDependencies ++= Seq(
- "org.springframework.scala" % "spring-scala_2.10" % "1.0.0.RC1",
- "com.typesafe" % "config" % "1.2.1"
- )
- resolvers ++= Seq(
- "spring scala milestones" at "http://repo.springsource.org/milestone"
- )
- def mapFile(file: io.File, replace: String => String) {
- file.printlnAll(file.lines.toList map replace: _*)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement