Scala version upgrade to 2.10.0 in the elevator application

I am working with a sample Lift framework downloaded from github.com. Scala 2.9.1 is the version. I use Container: start command in cmd to start the server, and I see the application in localhost: 8080. But I installed Scala 2.10.0 in Eclipse. If I integrate the project with the Eclipse IDE, localhost: 8080 will show some errors. What is the problem?

I have build.sbt with:

 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" ) } 

I have included Eclipse in /plugins.sbt projects

  addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.1.0") 
+4
source share
1 answer

To update Eclipse, you need to update the ScalaIDE plugin to work with 2.10. http://download.scala-ide.org/sdk/e37/scala210/dev/site/

If your build.sbt or plugin.sbt contains the line:

 scalaVersion := "2.10.0" 

SBT will find the string, interpret it, and automatically load the 2.10 Scala Compiler and 2.10 Scala library for the repo type. This can be found in the type resolver, which is usually added as a global resolver in ~/.sbt/ , like this resolvers += Classpaths.typesafeResolver .

If you compile the project with the scalaVersion := "2.10.0" inside the assembly definition (the same goes for the plugin) and you don’t have either w90> 2.10 installed or in your path, then SBT will automatically download it from typeafe resolver and put the loaded files in ~/.sbt/boot/scala-2.10.0/lib/ , where you will find the following files:

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

Here is an example build.sbt config for a 2.5M3 application for an elevator originally created with Scala 2.9.2, with an upgrade to 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 

Here is the plugins.sbt file, which should be in PROJECTROOT / project / 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") 

Here is the global plugins file, which should be located in ~ / .sbt / plugins / plugins.sbt . If you post material here, it will be uploaded to all your SBT projects in the system. This, of course, means your car.

 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") 
+2
source

Source: https://habr.com/ru/post/1469203/


All Articles