mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +00:00
170 lines
5.6 KiB
Scala
170 lines
5.6 KiB
Scala
// set the name of the project
|
|
name := "My Project"
|
|
|
|
version := "1.0"
|
|
|
|
organization := "org.myproject"
|
|
|
|
// add a test dependency on ScalaCheck
|
|
libraryDependencies += "org.scala-tools.testing" %% "scalacheck" % "1.8" % "test"
|
|
|
|
// add compile dependencies on some dispatch modules
|
|
libraryDependencies ++= Seq(
|
|
"net.databinder" %% "dispatch-meetup" % "0.7.8",
|
|
"net.databinder" %% "dispatch-twitter" % "0.7.8"
|
|
)
|
|
|
|
// Set a dependency based partially on a val.
|
|
{
|
|
val libosmVersion = "2.5.2-RC1"
|
|
libraryDependencies += "net.sf.travelingsales" % "osmlib" % libosmVersion from "http://downloads.sourceforge.net/project/travelingsales/libosm/"+libosmVersion+"/libosm-"+libosmVersion+".jar"
|
|
}
|
|
|
|
// reduce the maximum number of errors shown by the Scala compiler
|
|
maxErrors := 20
|
|
|
|
// increase the time between polling for file changes when using continuous execution
|
|
pollInterval := 1000
|
|
|
|
// append several options to the list of options passed to the Java compiler
|
|
javacOptions ++= Seq("-source", "1.5", "-target", "1.5")
|
|
|
|
// append -deprecation to the options passed to the Scala compiler
|
|
scalacOptions += "-deprecation"
|
|
|
|
// set the Scala version used for the project
|
|
scalaVersion := "2.9.0-SNAPSHOT"
|
|
|
|
// define the statements initially evaluated when entering 'console', 'console-quick', or 'console-project'
|
|
initialCommands := """
|
|
import System.{currentTimeMillis => now}
|
|
def time[T](f: => T): T = {
|
|
val start = now
|
|
try { f } finally { println("Elapsed: " + (now - start)/1000.0 + " s") }
|
|
}
|
|
"""
|
|
|
|
// set the initial commands when entering 'console' only
|
|
initialCommands in console := "import myproject._"
|
|
|
|
// set the main class for packaging the main jar
|
|
// 'run' will still auto-detect and prompt
|
|
// change Compile to Test to set it for the test jar
|
|
mainClass in (Compile, packageBin) := Some("myproject.MyMain")
|
|
|
|
// set the main class for the main 'run' task
|
|
// change Compile to Test to set it for 'test:run'
|
|
mainClass in (Compile, run) := Some("myproject.MyMain")
|
|
|
|
// add <base>/input to the files that '~' triggers on
|
|
watchSources <+= baseDirectory map { _ / "input" }
|
|
|
|
// add a maven-style repository
|
|
resolvers += "name" at "url"
|
|
|
|
// add a sequence of maven-style repositories
|
|
resolvers ++= Seq("name" at "url")
|
|
|
|
// define the repository to publish to
|
|
publishTo := Some("name" at "url")
|
|
|
|
// set Ivy logging to be at the highest level
|
|
ivyLoggingLevel := UpdateLogging.Full
|
|
|
|
// disable updating dynamic revisions (including -SNAPSHOT versions)
|
|
offline := true
|
|
|
|
// set the prompt (for this build) to include the project id.
|
|
shellPrompt in ThisBuild := { state => Project.extract(state).currentRef.project + "> " }
|
|
|
|
// set the prompt (for the current project) to include the username
|
|
shellPrompt := { state => System.getProperty("user.name") + "> " }
|
|
|
|
// disable printing timing information, but still print [success]
|
|
showTiming := false
|
|
|
|
// disable printing a message indicating the success or failure of running a task
|
|
showSuccess := false
|
|
|
|
// change the format used for printing task completion time
|
|
timingFormat := {
|
|
import java.text.DateFormat
|
|
DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT)
|
|
}
|
|
|
|
// disable using the Scala version in output paths and artifacts
|
|
crossPaths := false
|
|
|
|
// fork a new JVM for 'run' and 'test:run'
|
|
fork := true
|
|
|
|
// fork a new JVM for 'test:run', but not 'run'
|
|
fork in Test := true
|
|
|
|
// add a JVM option to use when forking a JVM for 'run'
|
|
javaOptions += "-Xmx2G"
|
|
|
|
// only use a single thread for building
|
|
parallelExecution := false
|
|
|
|
// Execute tests in the current project serially
|
|
// Tests from other projects may still run concurrently.
|
|
parallelExecution in Test := false
|
|
|
|
// set the location of the JDK to use for compiling Java code.
|
|
// if 'fork' is true, this is used for 'run' as well
|
|
javaHome := Some(file("/usr/lib/jvm/sun-jdk-1.6"))
|
|
|
|
// Use Scala from a directory on the filesystem instead of retrieving from a repository
|
|
scalaHome := Some(file("/home/user/scala/trunk/"))
|
|
|
|
// don't aggregate clean (See FullConfiguration for aggregation details)
|
|
aggregate in clean := false
|
|
|
|
// only show warnings and errors on the screen for compilations.
|
|
// this applies to both test:compile and compile and is Info by default
|
|
logLevel in compile := Level.Warn
|
|
|
|
// only show warnings and errors on the screen for all tasks (the default is Info)
|
|
// individual tasks can then be more verbose using the previous setting
|
|
logLevel := Level.Warn
|
|
|
|
// only store messages at info and above (the default is Debug)
|
|
// this is the logging level for replaying logging with 'last'
|
|
persistLogLevel := Level.Debug
|
|
|
|
// only show 10 lines of stack traces
|
|
traceLevel := 10
|
|
|
|
// only show stack traces up to the first sbt stack frame
|
|
traceLevel := 0
|
|
|
|
// add SWT to the unmanaged classpath
|
|
unmanagedJars in Compile += file("/usr/share/java/swt.jar")
|
|
|
|
// publish test jar, sources, and docs
|
|
publishArtifact in Test := true
|
|
|
|
// disable publishing of main docs
|
|
publishArtifact in (Compile, packageDoc) := false
|
|
|
|
// change the classifier for the docs artifact
|
|
artifactClassifier in packageDoc := Some("doc")
|
|
|
|
// Copy all managed dependencies to <build-root>/lib_managed/
|
|
// This is essentially a project-local cache and is different
|
|
// from the lib_managed/ in sbt 0.7.x. There is only one
|
|
// lib_managed/ in the build root (not per-project).
|
|
retrieveManaged := true
|
|
|
|
/* Specify a file containing credentials for publishing. The format is:
|
|
realm=Sonatype Nexus Repository Manager
|
|
host=nexus.scala-tools.org
|
|
user=admin
|
|
password=admin123
|
|
*/
|
|
credentials += Credentials(Path.userHome / ".ivy2" / ".credentials")
|
|
|
|
// Directly specify credentials for publishing.
|
|
credentials += Credentials("Sonatype Nexus Repository Manager", "nexus.scala-tools.org", "admin", "admin123")
|