mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +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")
 |