scala lift环境搭建

摘要:
scala的官方网站上列出了三个主流IDE插件。我花了一周时间研究这三个插件。首先,scala 2.7.5和更高版本的插件需要eclipse3.5的环境,并且使用大量内存。有时无法打开scala编辑器。闭包是scala最大的特性之一。最后,我找到了我认为最好的scala开发工具:IntellijIDEA。因为scala插件需要对scala库和java库进行索引,以实现代码提示、重构等功能。这就是Intellijidea的scala插件优于Eclipse和Netbeans插件的原因。
 

Intellij IDEA + scala插件

工欲善其事,必先利其器! 

学习scala已经有一段时间了,对scala这门语言爱不释手,但同时也为scala糟糕的IDE工具支持感到懊恼(我是一个100%的IDE支持者)。由于社区关注度还不是很高,scala缺乏像java那样强大的ide支持。scala官方网站上列出了三种主流的IDE插件(eclipse, netbeans, itellij idea),我花了一个星期的时间对三个插件进行了一番探索。 

一直以来,我都在使用eclipse进行java开发,所以我首先尝试了scala的eclipse插件,使用之后的感觉非常糟糕。首先scala 2.7.5以后版本的插件需要eclipse 3.5的环境,而且在使用时占用非常大的内存,有时出现无法打开scala编辑器的情况。而且在代码提示、重构、即时编译方面做得很糟糕。总之,scala的eclipse插件给人的感觉是:崩溃! 

接下来我尝试了scala的netbeans插件。我使用的是netbeans 6.7版本。较之eclipse版本的插件,感觉有很大的改进。首先占用的内存较小,在代码提示、重构、即时编译方面也做得挺出色,但是存在一个较大的缺陷:无法调试闭包!而闭包是scala语言的最大特色之一。这多少让人难以接受。 

最后,我找到了我认为最好的scala开发工具:Intellij IDEA。众所周知,intellij idea的使用性非常好,是一个非常优秀的IDE。而更令人振奋的是它在不久前开源了,并且最新的9.0版本刚刚发布了! 

以下是在Intellij idea 9.0社区版上构建scala开发环境的全过程。 

一 下载Intellij idea 9.0社区版。 下载免费社区版 
二 启动Intellij idea 9.0, 可以看到如下界面: 

scala lift环境搭建第1张

在界面的右端可以看到Intellij Idea的插件管理器。接下来有两种方法安装scala插件 
三 安装scala插件 
3.1 通过plugin manager安装。点击“Open Plugin Manager”的按钮,出现一个对话框: 

scala lift环境搭建第2张
安装的过程非常简单,这里就不赘述了。安装之后重启ide。这种安装方式推荐网络比较好的朋友安装。 

3.2 下载插件离线安装。到Intellij Idea的插件下载页面,在左边浏览"Categories --> Custom Languagies --> Scala", 目前最新版本是0.3.312。将下载的zip包解压后放到"path_to_your_installationplugins"目录,然后重启ide. 

无论你以何种方式安装成功后,都可以在启动页面的插件管理栏中看到scala插件 

四 新建一个scala工程 

scala lift环境搭建第3张

点击"Next"按钮 

scala lift环境搭建第4张

点击"Next"按钮 

scala lift环境搭建第5张

点击"Next"按钮 

scala lift环境搭建第6张

这里要重点说明一下,默认情况下wizard会选择从为远程下载scala相关的包,但如果你已经下载了scala,那么可以选择"pick files from disk", 这里我们只需要选中两个包。 

scala lift环境搭建第7张 

点击完成。第一次建立scala工程的时候会比较慢。因为scala插件要为scala库以及java库建立索引,以实现代码提示,重构等功能。这也是Intellij idea的scala插件优于Eclipse和Netbeans插件的原因。 

扫描完成之后,我们可以看到建立的scala工程: 

scala lift环境搭建第8张

右键点击src目录,建立一个scala类,类的类型为"class",如图: 

scala lift环境搭建第9张 

接下来大家就可以编写scala代码了。 

参考资料: 
http://www.jetbrains.net/confluence/display/SCA/Scala+Plugin+for+IntelliJ+IDEA 

SBT指定资源目录
scalaSource in Compile := baseDirectory.value / "src" resourceDirectory in Compile := baseDirectory.value / "resources"...
2014-04-16 14:23 阅读(63) 评论(0)
 
主要参考了http://fxthomas.github.io/android-plugin/tutorial/01-getting-started.html 首先clone https://github.com/fxthomas/android-scratch到本地 由于本地没有sbt-android插件,需要在build.sbt中增加以下库 resolvers += Resolver....
2014-02-16 00:00 阅读(242) 评论(0)
 
object ScalaMain { trait A[T] { def shared(v: T): Int } case class B(shared: Int, other: String) case class C(shared: Int) case class D() import net.liftweb.json._ implicit val f...
2013-12-26 21:43 阅读(144) 评论(0)
 
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" brew install sbt...
2013-05-12 23:01 阅读(230) 评论(0)
 
问题引出:在liftweb中使用logback,使得日志可以使用logback的特性,最重要是可以自定义输出位置 基本配置 scala 2.9.2 lift 2.5.M4 logback-classic 0.9.28 slf4j-log4j12 1.6.1 (建议) 陷进1.class Boot 在def boot中不要设置  Logger.setup=Empty...
2013-05-09 08:50 阅读(486) 评论(0)
 
动态模版读取 def csstest = ".row *" #> List(1,2,3).map( x => ".cell *" #> Templates(List("bindtest")).map(html=>bind("hello",html,"act1"->Text("hhh")))) hello world aaa...
2012-12-01 13:26 阅读(168) 评论(0)
 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4...
2012-08-16 09:55 阅读(317) 评论(0)
 
lift 数据源配置 在webapp目录下建立META-INF目录,里面创建context.xml文件,文件内容如下 <Resource name="jdbc/mysql" auth="Container" description="DB Connection" type="javax.sql....
2012-07-14 00:02 阅读(208) 评论(0)
 
将sbt环境由0.7.4迁移至0.11.3 开发环境为mac 1.下载sbt-launch.0.11.3.jar 放在/bin目录中 2.编辑sbt文件,放在相同目录下,文件内容为 java -XX:MaxPermSize=1024M -Xmx2048M -Xss4M -jar `dirname $0`/sbt-launch-0.11.3.jar "$@" 3.添加lift项目支持...
2012-07-04 21:11 阅读(290) 评论(0)
 
StreamingResponse相关文章  http://comments.gmane.org/gmane.comp.web.lift/56196 http://www.assembla.com/spaces/liftweb/wiki/StreamingResponse http://exploring.liftweb.net/master/index-9.html...
2012-07-03 21:19 阅读(250) 评论(0)
 
You are using Lift 1.0's JsCmd, which produces JSON with single-quoted strings and attempting to parse it with scala's parser, which only supports double-quoted strings. It is important to realize...
2012-04-27 10:31 阅读(651) 评论(0)
 
Binding via CSS Selectors Lift 2.2-M1 introduced a new mechanism for transforming XHTML: CSS Selector Transforms (CssBindFunc). The new mechanism provides a subset of CSS selectors that can be us...
2012-04-20 15:17 阅读(329) 评论(0)
 
让我们来创建一个简单的aJax例子 首先创建一个snippet import _root_.net.liftweb.http.SHtml._ import _root_.net.liftweb.http.js.JE._ import _root_.net.liftweb.http.js.JsCmds._ import scala.xml.{NodeSeq,Text} import net.li...
2012-04-19 00:14 阅读(237) 评论(0)
 
当你需要将一个页面的内容分为几块时(大多数情况下你都会这样做).可以使用embed方式 将需要切分的页面内容放入embed.html,位置在webapp/下 在你需要调用这个内容地方使用 replaced with embedded content 保存后刷新页面,你会看到此处内容被替换为embed.html中的内容(被引用的内容自然也会被解析) 一个...
2012-04-17 18:01 阅读(211) 评论(0)
 
在HelloWorld.scala中,增加声明 import net.liftweb.http.S 代码修改为:def foo: NodeSeq = { val x = S.attr("myparam") openOr "myparam: Y U NO DEFINED!?" I got {x}! } def render = "*" #> c index.html页...
2012-04-10 03:24 阅读(236) 评论(0)
 
在项目所在目录的中,输入 *sbtIdeaRepo at http://mpeltonen.github.com/maven/ *idea is com.github.mpeltonen sbt-idea-processor 0.4.0 update idea 注意,只有输入“idea”后,才会实际转变为idea项目 接下来先启动jetty jetty-run 然后启动实时编译...
2012-04-06 22:34 阅读(309) 评论(0)
 
接上篇 下载jrabel,解压jrable.jar在/User/test/program/lib/jrebel/下 修改sbt文件为 java -noverify -javaagent:/Users/test/program/lib/jrebel/jrebel.jar -XX:MaxPermSize=1024M -Xmx2048M -Xss4M -jar `dirname $0`/sbt-...
2012-04-05 23:29 阅读(326) 评论(0)
 
运行环境为MAC 1.下载sbt-launch-0.7.7.jar 复制到./bin目录下 2.在./bin目录下创建文件sbt,内容如下 java -XX:MaxPermSize=1024M -Xmx2048M -Xss4M -jar `dirname $0`/sbt-launch-0.7.7.jar "$@" 3.更改sbt的权限为u+x 4.运行前检查java环境是否安装 ,以ja...
2012-04-04 09:22 阅读(655) 评论(2)
 
Scala中使用HTTP访问地址可以使用以下简便方式 1.声明对象   abstract class OptionalParam case class Id(id : String) extends OptionalParam case class UserId...
2011-08-24 17:43 阅读(232) 评论(0)
 
ScalaActivity.scala package com.example import android.app.Activity import android.os.Bundle import android.view.View import android....

免责声明:文章转载自《scala lift环境搭建》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ORACLE检查找出损坏索引(Corrupt Indexes)的方法详解(八)Asp.NET中三层架构的应用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Scala(七)集合

7.1集合简介   1)说明 (1)Scala的集合有三大类:序列Seq、集Set、映射Map,所有的集合都扩展自Iterable特质。 (2)对于几乎所有的集合类,Scala都同时提供了可变和不可变的版本,分别位于以下两个包 不可变集合:scala.collection.immutable 可变集合:scala.collection.mutable...

lua 函数调用1 -- 闭包详解和C调用

这里, 简单的记录一下lua中闭包的知识和C闭包调用 前提知识: 在lua api小记2中已经分析了lua中值的结构, 是一个 TValue{value, tt}组合, 如果有疑问, 可以去看一下 一些重要的数据结构     lua中有两种闭包, c闭包和lua闭包     两种闭包的公共部分:        #define ClosureHeader C...

lua学习笔记10:lua简单的命令行

前面反复使用的命令行,好学喜欢命令行: 一 格公式 lua [options][script][args] 两 详细命令 -e 直接命令传递一个lua -l 加载文件 -i 进入交互模式 比例如。端子输入: lua -e "print(math.sin(12))" 版权声明:本文博主原创文章,博客,未经同意不得转载。...

SPark SQL 从 DB 读取数据方法和方式 scala

import org.apache.spark.sql.SQLContext import org.apache.spark.SparkConf import org.apache.spark.SparkContext import java.util.HashMap import org.apache.spark.sql.Row import org.a...

DevOps专题|Lua引擎打造超轻量级客户端

Lua 作为一门轻量级脚本语言,源码使用标准C语言发布,语法简洁,非常适合嵌入式、客户端、游戏等场景。 Lua引擎语言特点 轻量级 源码简单,以lua最新版5.3.5为例,加上lua自身提供的lib库,仅30多个.c文件,编译后仅200多k,strip后经upx压缩,可控制在100k以下。 语法简洁 小巧灵活,支持闭包,有GC机制,通过语法糖可实现面向对...

Windows 2003+IIS6+PHP5.4+配置PHP支持空间的方法

写在前面1、如果无论怎么弄都无法让php支持连接mssql则可以下载 FreeTDS 插件5.3,以便访问 SQL Server 数据库 php5.2 Thread Safe http://download.moodle.org/download.php/dblib/php52/DBLIB_TS.zip NOT Thread Safe http://dow...