Akka的源代码采用sbt 0.7.7做管理。最新的sbt 0.10.x已经发生了许多变更,为了使用sbteclipse生成Eclipse项目方便查看源代码,今天捣腾了不少时间。
0. 下载akka源代码,解压至硬盘(也可以git clone之)
1. 备份原有的akka源代码目录下面的project文件夹为project.old。
2. 创建新的project文件夹
3. project目录下创建项目配置文件Build.scala和build.properties
4. 运行sbt reload,update,compile编译项目
5. sbt eclipse create-src创建eclipse项目
6. Eclipse中导入akka项目
第四部最为复杂,主要是定义仓库,定义依赖和增加sbteclipse插件,
build.properties只用来指定sbt版本
sbt.version=0.10.0
Build.scala
import sbt._
import Keys._
object Settings {
import Dependencies._
import Resolvers._
val buildScalaVersion = "2.9.0-1"
val buildSettings = Defaults.defaultSettings ++ Seq(
scalaVersion := buildScalaVersion,
libraryDependencies := Depns,
resolvers := Repos)
}
object Resolvers {
/**
* repos definition
*/
lazy val Repos = Seq(
AkkaRepo,
CodehausRepo,
GuiceyFruitRepo,
JBossRepo,
JavaNetRepo,
SonatypeSnapshotRepo,
GlassfishRepo,
ScalaToolsRelRepo,
ScalaToolsSnapshotRepo,
TypeSafeRepo)
lazy val AkkaRepo = "Akka Repository" at "http://akka.io/repository"
lazy val CodehausRepo = "Codehaus Repo" at "http://repository.codehaus.org"
lazy val GuiceyFruitRepo = "GuiceyFruit Repo" at "http://guiceyfruit.googlecode.com/svn/repo/releases/"
lazy val JBossRepo = "JBoss Repo" at "http://repository.jboss.org/nexus/content/groups/public/"
lazy val JavaNetRepo = "java.net Repo" at "http://download.java.net/maven/2"
lazy val SonatypeSnapshotRepo = "Sonatype OSS Repo" at "http://oss.sonatype.org/content/repositories/releases"
lazy val GlassfishRepo = "Glassfish Repo" at "http://download.java.net/maven/glassfish"
lazy val ScalaToolsRelRepo = "Scala Tools Releases Repo" at "http://scala-tools.org/repo-releases"
lazy val DatabinderRepo = "Databinder Repo" at "http://databinder.net/repo"
lazy val ScalaToolsSnapshotRepo = "Scala-Tools Snapshot Repo" at "http://scala-tools.org/repo-snapshots"
//type safe sbteclipse plugin repo
lazy val typesafeRepoUrl = new java.net.URL("http://repo.typesafe.com/typesafe/releases")
lazy val pattern = Patterns(false, "[organisation]/[module]/[sbtversion]/[revision]/[type]s/[module](-[classifier])-[revision].[ext]")
lazy val TypeSafeRepo = Resolver.url("Typesafe Repository", typesafeRepoUrl)(pattern)
}
object Dependencies {
// -------------------------------------------------------------------------------------------------------------------
// Versions
// -------------------------------------------------------------------------------------------------------------------
lazy val JACKSON_VERSION = "1.7.1"
lazy val JERSEY_VERSION = "1.3"
lazy val MULTIVERSE_VERSION = "0.6.2"
lazy val SCALATEST_VERSION = "1.4.1"
lazy val JETTY_VERSION = "7.4.0.v20110414"
lazy val JAVAX_SERVLET_VERSION = "3.0"
lazy val SLF4J_VERSION = "1.6.0"
// Compile
lazy val aopalliance = "aopalliance" % "aopalliance" % "1.0" % "compile" //Public domain
lazy val aspectwerkz = "org.codehaus.aspectwerkz" % "aspectwerkz" % "2.2.3" % "compile" //ApacheV2
lazy val commons_codec = "commons-codec" % "commons-codec" % "1.4" % "compile" //ApacheV2
lazy val commons_io = "commons-io" % "commons-io" % "2.0.1" % "compile" //ApacheV2
lazy val javax_servlet_30 = "org.glassfish" % "javax.servlet" % JAVAX_SERVLET_VERSION % "provided" //CDDL v1
lazy val jetty = "org.eclipse.jetty" % "jetty-server" % JETTY_VERSION % "provided" //Eclipse license
lazy val guicey = "org.guiceyfruit" % "guice-all" % "2.0" % "compile" //ApacheV2
lazy val h2_lzf = "voldemort.store.compress" % "h2-lzf" % "1.0" % "compile" //ApacheV2
lazy val jackson = "org.codehaus.jackson" % "jackson-mapper-asl" % JACKSON_VERSION % "compile" //ApacheV2
lazy val jackson_core = "org.codehaus.jackson" % "jackson-core-asl" % JACKSON_VERSION % "compile" //ApacheV2
lazy val jersey_server = "com.sun.jersey" % "jersey-server" % JERSEY_VERSION % "provided" //CDDL v1
lazy val jsr250 = "javax.annotation" % "jsr250-api" % "1.0" % "compile" //CDDL v1
lazy val jsr311 = "javax.ws.rs" % "jsr311-api" % "1.1" % "compile" //CDDL v1
lazy val multiverse = "org.multiverse" % "multiverse-alpha" % MULTIVERSE_VERSION % "compile" //ApacheV2
lazy val multiverse_test = "org.multiverse" % "multiverse-alpha" % MULTIVERSE_VERSION % "test" //ApacheV2
lazy val netty = "org.jboss.netty" % "netty" % "3.2.4.Final" % "compile" //ApacheV2
lazy val osgi_core = "org.osgi" % "org.osgi.core" % "4.2.0" //ApacheV2
lazy val protobuf = "com.google.protobuf" % "protobuf-java" % "2.3.0" % "compile" //New BSD
lazy val sjson = "net.debasishg" % "sjson_2.9.0" % "0.11" % "compile" //ApacheV2
lazy val sjson_test = "net.debasishg" % "sjson_2.9.0" % "0.11" % "test" //ApacheV2
lazy val slf4j = "org.slf4j" % "slf4j-api" % SLF4J_VERSION
lazy val logback = "ch.qos.logback" % "logback-classic" % "0.9.28" % "runtime"
// Test
lazy val commons_coll = "commons-collections" % "commons-collections" % "3.2.1" % "test" //ApacheV2
lazy val testJetty = "org.eclipse.jetty" % "jetty-server" % JETTY_VERSION % "test" //Eclipse license
lazy val testJettyWebApp = "org.eclipse.jetty" % "jetty-webapp" % JETTY_VERSION % "test" //Eclipse license
lazy val junit = "junit" % "junit" % "4.5" % "test" //Common Public License 1.0
lazy val mockito = "org.mockito" % "mockito-all" % "1.8.1" % "test" //MIT
lazy val scalatest = "org.scalatest" % "scalatest_2.9.0" % SCALATEST_VERSION % "test" //ApacheV2
lazy val sbteclipse = "com.typesafe.sbteclipse" % "sbteclipse_2.8.1" % "1.1" extra ("sbtversion" -> "0.10.0")//这行依赖应该放在project/plugins/build.sbt中
val Depns = Seq(
aopalliance,
aspectwerkz,
commons_codec,
commons_io,
javax_servlet_30,
jetty,
guicey,
h2_lzf,
jackson,
jackson_core,
jersey_server,
jsr250,
jsr311,
multiverse,
multiverse_test,
netty,
osgi_core,
protobuf,
sjson,
sjson_test,
slf4j,
logback,
commons_coll,
testJetty,
testJettyWebApp,
junit,
mockito,
scalatest,
sbteclipse)
}
object AkkaBuild extends Build {
import Settings._
import Resolvers._
lazy val akka = Project("akka", file("."), settings = buildSettings)
.aggregate(
akka_actor,
akka_testkit,
akka_actor_tests,
akka_stm, akka_typed_actor,
akka_remote, akka_http,
akka_samples, akka_slf4j,
akka_tutorials)
lazy val akka_actor = Project("akka-actor", file("akka-actor"), settings = buildSettings)
lazy val akka_testkit = Project("akka-testkit", file("akka-testkit"), settings = buildSettings) dependsOn (akka_actor)
lazy val akka_actor_tests = Project("akka-actor-tests", file("akka-actor-tests"), settings = buildSettings) dependsOn (akka_testkit)
lazy val akka_stm = Project("akka-stm", file("akka-stm"), settings = buildSettings) dependsOn (akka_actor)
lazy val akka_typed_actor = Project("akka-typed-actor", file("akka-typed-actor"), settings = buildSettings) dependsOn (akka_stm, akka_actor_tests)
lazy val akka_remote = Project("akka-remote", file("akka-remote"), settings = buildSettings) dependsOn (akka_typed_actor)
lazy val akka_http = Project("akka-http", file("akka-http"), settings = buildSettings) dependsOn (akka_actor)
lazy val akka_samples = Project("akka-samples", file("akka-samples"), settings = buildSettings)
lazy val akka_slf4j = Project("akka-slf4j", file("akka-slf4j"), settings = buildSettings) dependsOn (akka_actor)
lazy val akka_tutorials = Project("akka-tutorials", file("akka-tutorials"), settings = buildSettings) dependsOn (akka_actor)
}
最后在~/.sbt/plugins/build.sbt或project/plugins/build.sbt 中加入sbteclipse依赖
分享到:
相关推荐
官方版本,亲测可用
scala-world-2015, scala.world 2015的源代码关于akka流/akka http akka流/akka http-scala.world-2015会议会话源要进行测试,请在sbt中运行这里命令:log-service/re-startbackend/runMain example.repoanalyze
sbt-0.13.17 sbt-0.13.17 sbt-0.13.17 sbt-0.13.17 sbt-0.13.17 sbt-0.13.17
IntelliJ IDEA使用SBT构建一个AKKA Scala程序
sbt-1.9.0.tgz
当在sbt 1.1.x和0.13.x中进行编译时,此插件提供了运行antlr4的功能。 如何使用 将您的.g4文件放在src/main/antlr4目录中,并制作具有以下内容的project/sbt-antlr4.sbt文件: // sbt 1.1.x addSbtPlugin(...
下载太慢,搞个备份的!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
饮料冷藏陈列柜
请参阅下面的安装详细信息和以获取有关配置sbteclipse的信息。 可以在下面找到有关捐款政策和许可证的信息。 安装和基本用法 打开您的插件定义文件(如果不存在,请创建一个)。 您可以使用以下任一方法: 全局...
sbt-1.3.0安装包,官网https://www.scala-sbt.org/download.html
用于 sbt-0.12.x 的插件,它根据 antlr 3.5 语法生成代码。 用法 取决于插件: ./project/plugins/build.sbt resolvers += "stefri" at "http://stefri.github.io/repo/releases" addSbtPlugin(...
0.10.x插件。 将根据项目的scalaVersion自动安装scct ist。 警告downoads部分中的Jar仅适用于sbt 0.10.1 命令: 覆盖范围:编译 覆盖范围:测试 覆盖范围:doc coverage:test和coverage:doc的作用相同,因此,如果...
下载请校验文件HashSHA256: 27B2ED49758011FEFC1BD05E1F4156544D60673E082277186FDD33B6F55D995D
JUnit 4的sbt测试接口的实现 com.novocode/junit-interface/0.10/junit-interface-0.10.jar
斯巴拓三维图测力传感器3D图SBT301.SLDPRT
在oschina镜像不能用之后,现在使用阿里云作为镜像,通过该jar包能够快速地安装sbt。
包含:sbt 1.4.5.msi; 0.13.16.msi、0.13.16.tgz、0.13.16.zip。 备份用
sbt编译工具,sbt版本为1.3.4 sbt script version: 1.3.4 用在编译scala上面,欢迎使用下载。
sbt-remote-control, 使用unicorns和fork创建和管理sbt进程 sbt遥控器 这是一个用于控制来自另一个 Scala 程序的sbt的API 。 它将使用 命令行 工具。ide 。激活器插件。检查项目生成和运行生成任务,如编译和编译。...
压缩包涵盖 sbt-launch-0.11.0,sbt-launch-0.11.2,sbt-launch-0.11.3,sbt-launch-0.13.9版本