利用sbt构建scala工程,其中引用了akka的包和Eclipse插件,其中Eclipse插件用来生成Eclipse工程。
首先写好scala文件,在此sbt构建工程师自动按照src/main/scala,src/main/java,src/main/resources;src/test/scala,src/test/java,src/test/resources
来寻找然后构建工程。在工程目录下。最基本的要有build.sbt和project/,在project中有个plugins.sbt是设计插件的配置的,这两个文件如下。
我的工程配置文件如下:
1,build.sbt文件:
name := "Segral"
organization := "edu.neu.ise.cs"
version := "0.1"
scalaVersion := "2.10.3"
resolvers += "Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/"
libraryDependencies ++= Seq("com.typesafe.akka" %% "akka-actor" % "2.3.0",
"org.scala-lang" % "scala-actors" % "2.10.3")
2,project中的plugins.sbt文件,主要用来配置eclipse插件:
resolvers += Resolver.url("artifactory", url("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns)
resolvers += "Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/"
resolvers += "Spray Repository" at "http://repo.spray.cc/"
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.2.0")
执行sbt,然后执行run,可以看见终端的提示为(由于有多个main函数的文件,所以你要选择序号运行某个文件)比如:
[casa@casa Segral]$ sbt
[info] Loading project definition from /home/casa/git/Segral/project
[info] Set current project to Segral (in build file:/home/casa/git/Segral/)
> run
Multiple main classes detected, select one to run:
[1] main.scala.actor.basicActorTest
[2] main.scala.actor.akkaActorTest
[3] main.scala.db.join.hashjoin.HashTable
[4] main.scala.common.Schema
[5] main.scala.db.join.hashjoin.Hashjoin
Enter number:
选择你要执行的文件的序号,然后就可以看见执行结果。下面列出一个简单的测试文件,可以看见在build.sbt文件中,你已经加入了akka的包,所以在我的工程中的main/scala/actor/下的akkaActorTest.scala文件中,可以直接引用akka的包,sbt编译的时候直接从resolver解析器解析出来的jar包中下载。
package main.scala.actor
import akka.actor.Actor
import akka.actor.ActorSystem
import akka.actor.Props
class akkaActorTest extends Actor{
def receive = {
case "hi" => println("cdcd");
}
}
object akkaActorTest{
def main(args:Array[String]){
val system=ActorSystem("mySystem");
val myactor=system.actorOf(Props[akkaActorTest], name="akkaTest")
val message="hi";
myactor ! message;
}
}