2013-03-14 61 views
4

我正在从github.com下载示例Lift框架。斯卡拉2.9.1是它的版本。我在cmd中使用Container:start命令启动服务器,我可以在localhost:8080中看到该应用程序。但我已经在Eclipse中安装了scala 2.10.0。如果我将项目与Eclipse IDE集成,localhost:8080会显示一些错误。问题是什么?在电梯应用程序中将scala版本更新为2.10.0

我有build.sbt有:

name := "Lift 2.5 starter template" 

version := "0.0.1" 

organization := "net.liftweb" 

scalaVersion := "2.9.1" 

resolvers ++= Seq("snapshots"  at  "http://oss.sonatype.org/content/repositories/snapshots", 
      "releases"  at "http://oss.sonatype.org/content/repositories/releases" 
      ) 

seq(com.github.siasia.WebPlugin.webSettings :_*) 

unmanagedResourceDirectories in Test <+= (baseDirectory) { _/"src/main/webapp" } 

scalacOptions ++= Seq("-deprecation", "-unchecked") 

libraryDependencies ++= { 
    val liftVersion = "2.5-RC2" 
    Seq(
    "net.liftweb"  %% "lift-webkit"  % liftVersion  % "compile", 
    "net.liftweb"  %% "lift-mapper"  % liftVersion  % "compile", 
    "net.liftmodules" %% "lift-jquery-module" % (liftVersion + "-2.2"), 
    "org.eclipse.jetty" % "jetty-webapp"  % "8.1.7.v20120910" % "container,test", 
    "org.eclipse.jetty.orbit" % "javax.servlet" % "3.0.0.v201112011016" % "container,test" artifacts Artifact("javax.servlet", "jar", "jar"), 
    "ch.qos.logback" % "logback-classic"  % "1.0.6", 
    "org.specs2"  %% "specs2"    % "1.12.1"   % "test", 
    "com.h2database" % "h2"     % "1.3.167" 
) 
} 

我已经与Eclipse的项目集成/ plugins.sbt

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.1.0") 

回答

2

要更新的Eclipse需要更新ScalaIDE插件与2.10合作。 http://download.scala-ide.org/sdk/e37/scala210/dev/site/

如果您build.sbtplugin.sbt containts行说:

scalaVersion := "2.10.0" 

SBT会发现线,解释它,并自动下载2.10 Scala编译器和2.10 Scala库的类型安全回购。这可在类型安全解析器中找到,该解析器通常作为~/.sbt/中的全局解析器添加,如此resolvers += Classpaths.typesafeResolver

如果您将在构建定义中使用scalaVersion := "2.10.0"行来编译项目(插件也是如此),并且您没有安装Scala 2.10或者在您的路径中,那么SBT会自动从类型安全解析器中下载它,请将下载的文件中 ~/.sbt/boot/scala-2.10.0/lib/,在那里你会找到以下文件:

jansi.jar, jline.jar, scala-compiler.jar, scala-library.jar, scala-reflect.jar 

下面是示例build.sbt配置了电梯2.5M3应用最初使用Scala 2.9.2创建,升级到2.10。

name := "secret" 

version := "0.1-SNAPSHOT" 

scalaVersion := "2.10.0" 

seq(com.github.siasia.WebPlugin.webSettings :_*) 

seq(jrebelSettings: _*) 

jrebel.webLinks <++= webappResources in Compile 

resolvers ++= Seq(
    "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots", 
    "Sonatype releases" at "https://oss.sonatype.org/content/repositories/releases", 
    "Scala 2.10 support for rogue" at "https://github.com/mattpap/rogue/" 
) 

libraryDependencies ++= { 
    val liftVersion = "2.5-M4" 
    Seq(
     "com.foursquare" %% "rogue-field" % "2.0.0-beta22", 
     "com.foursquare" %% "rogue-core" % "2.0.0-beta22", 
     "com.foursquare" %% "rogue-lift" % "2.0.0-beta22", 
     "net.liftweb" %% "lift-webkit" % liftVersion % "compile", 
     "net.liftweb" %% "lift-mongodb-record" % "2.5-M4", 
     "com.mongodb.casbah" % "casbah_2.9.0" % "2.2.0-SNAPSHOT", 
     "org.specs2" %% "specs2" % "1.12.3" % "test" 
    ) 
} 

classpathTypes ~= (_ + "orbit") 

libraryDependencies ++= Seq(
    "org.eclipse.jetty.orbit" % "javax.servlet" % "3.0.0.v201112011016" % "container" artifacts (Artifact("javax.servlet", "jar", "jar") 
) 
) 

libraryDependencies ++= Seq(
    "org.eclipse.jetty" % "jetty-webapp" % "8.1.7.v20120910" % "container" artifacts (Artifact("jetty-webapp", "jar", "jar") 
) 
) 

port in container.Configuration := 5555 

EclipseKeys.withSource := true 

这里是plugins.sbt文件,它应该在PROJECTROOT /项目/ plugins.sbt

libraryDependencies <+= sbtVersion(v => v match { 
    case "0.11.0" => "com.github.siasia" %% "xsbt-web-plugin" % "0.11.0-0.2.8" 
    case "0.11.1" => "com.github.siasia" %% "xsbt-web-plugin" % "0.11.1-0.2.10" 
    case "0.11.2" => "com.github.siasia" %% "xsbt-web-plugin" % "0.11.2-0.2.11" 
    case "0.11.3" => "com.github.siasia" %% "xsbt-web-plugin" % "0.11.3-0.2.11.1" 
    case x if (x.startsWith("0.12")) => 
    "com.github.siasia" %% "xsbt-web-plugin" % "0.12.0-0.2.11.1" 
}) 

resolvers += "Jawsy.fi M2 releases" at "http://oss.jawsy.fi/maven2/releases" 

addSbtPlugin("fi.jawsy.sbtplugins" %% "sbt-jrebel-plugin" % "0.9.0") 

这里是全局插件文件,这应该是在〜/。 sbt/plugins/plugins.sbt如果你把东西放在这里,它将被加载到系统范围内的所有SBT项目中。这当然只代表你的机器。

resolvers += Classpaths.typesafeResolver 

addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.1.0") 

resolvers += "jgit-repo" at "http://download.eclipse.org/jgit/maven" 

addSbtPlugin("com.typesafe.sbt" % "sbt-git" % "0.5.0") 

addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.2.0") 

resolvers += "Jawsy.fi M2 releases" at "http://oss.jawsy.fi/maven2/releases" 

addSbtPlugin("fi.jawsy.sbtplugins" %% "sbt-jrebel-plugin" % "0.9.0") 
+0

在Eclipse中与此项目的工作,我应该在比addSbtPlugin其他Eclipse任何配置( “com.typesafe.sbteclipse” % “sbteclipse-插件” % “2.1.0”)中plugins.sbt。 – isc 2013-03-14 11:37:55

+0

我已经在日食中安装了Scala 2.10。但现在它也不起作用。我可以复制粘贴你的build.sbt并运行? – isc 2013-03-14 11:52:15

+0

但在这个plugins.sbt中,没有任何东西可以像eclipse中的addSbtPlugin(“com.typesafe.sbteclipse”%“sbteclipse-plugin”%“2.1.0”)。它在文件中不是强制性的。 – isc 2013-03-14 12:54:44

相关问题