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, 可以看到如下界面:

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


安装的过程非常简单,这里就不赘述了。安装之后重启ide。这种安装方式推荐网络比较好的朋友安装。

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

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

四 新建一个scala工程

点击"Next"按钮

点击"Next"按钮

点击"Next"按钮

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

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

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

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

接下来大家就可以编写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环境搭建的更多相关文章

  1. Scala开发环境搭建与资源推荐

    Scala开发环境搭建与资源推荐 本文介绍了Scala的开发环境,包括SDK.IDE的设置.常用资源列表等.Scala是一门静态语言,很有可能就是Java的继承者. AD: 2014WOT全球软件技术 ...

  2. Scala开发环境搭建

    Ubuntu14.04下Scala开发环境搭建. 1:安装JDK,jdk-6u45-linux-x64.bin 将其安装到/usr/lib/jvm/jdk1.6.0_45/. 2:安装Scala,下载 ...

  3. Scala学习1————scala开发环境搭建(windows 10)

    Scala开发环境搭建 先讲几点我学习scala的目的或者原因吧: JVM在企业中的霸主地位,Scala也是JVM上的语言,很有可能未来会从Java过度到Scala也不是不可能. 先进的函数式编程和面 ...

  4. Eclipse+maven+scala+spark环境搭建

    准备条件 我用的Eclipse版本 Eclipse Java EE IDE for Web Developers. Version: Luna Release (4.4.0) 我用的是Eclipse ...

  5. Window下Scala开发环境搭建

    在Windows下搭建Scala开发环境,需要做以下几个步骤 1) 安装JDK 2) 安装Scala,并配置环境变量 3) Idea安装并创建Scala 类 1.安装JDK JDK安装,这里不再介绍, ...

  6. Flink开发-IDEA scala开发环境搭建

    现在大数据相关服务,越来越倾向于使用scala语言,scala函数式编程的优势我不多赘述.最明显的一个优点,代码简洁.看个WordCount实现对比: Java版WordCount Execution ...

  7. Windows下 Scala开发环境搭建

    1.配置jdk:可看这里 2.下载scala,并安装 3.配置scala环境变量,把scala的安装路径加入path内 ps:验证是否安装正确:cmd->输入scala,如果出现scala环境, ...

  8. Scala(一) 环境搭建和HelloWorld

    环境 scala 1.12.2 JDK 1.8.0_131 Win10 Eclipse 4.6.1   软件下载   官网:http://www.scala-lang.org/ 点击DOWNLOAD进 ...

  9. mac平台scala开发环境搭建

    到scala官网,下载scala的sdk,地址:http://www.scala-lang.org/download/ adeMacBook-Pro:scala- apple$ wget http:/ ...

随机推荐

  1. 远程访问mysql(转)

    GRANT ALL PRIVILEGES ON *.* TO '<username>'@'<remote addr or %(for all ip addr)>'IDENTIF ...

  2. Linux内核分析(六)----字符设备控制方法实现|揭秘系统调用本质

    原文:Linux内核分析(六)----字符设备控制方法实现|揭秘系统调用本质 Linux内核分析(六) 昨天我们对字符设备进行了初步的了解,并且实现了简单的字符设备驱动,今天我们继续对字符设备的某些方 ...

  3. UVA 11174 Stand in a Line 树dp+算

    主题链接:点击打开链接 题意:白书的P103. 加个虚根就能够了...然后就是一个多重集排列. import java.io.PrintWriter; import java.util.ArrayLi ...

  4. (大数据工程师学习路径)第四步 SQL基础课程----创建数据库并插入数据

    一.练习内容 1.新建数据库 首先,我们创建一个数据库,给它一个名字,比如“mysql_shiyan”,以后的几次实验也是对mysql_shiyan这个数据库进行操作. 语句格式为“CREATE DA ...

  5. HDU 4123 Bob’s Race 树的直径+单调队列

    题意: 给定n个点的带边权树Q个询问. 以下n-1行给出树 以下Q行每行一个数字表示询问. 首先求出dp[N] :dp[i]表示i点距离树上最远点的距离 询问u, 表示求出 dp 数组中最长的连续序列 ...

  6. 微信JS-SDK“分享信息设置”API及数字签名生成方法(NodeJS版本)

    原文:微信JS-SDK"分享信息设置"API及数字签名生成方法(NodeJS版本) 先上测试地址以示成功: 用微信打开下面地址测试 http://game.4gshu.com/de ...

  7. Java变量参数

    Java1.5添加新功能:可变参数:它适用于参数不确定性的数量,判断形势的类型.java变量参数数组操作. 特点: 1.今天的参数列表只能持续. 2.省略号(...)位于变量类型和变量名之间,前后有无 ...

  8. JavaScript编写了一个计时器

    初学JavaScript,用JavaScript编写了一个计时器. 设计思想: 1.借助于Date()对象,来不断获取时间点: 2.然后用两次时间点的毫秒数相减,算出时间差: 3.累加时间差,这样就能 ...

  9. Git联系oschina托管代码版本号

    工作一般使用SVN,近期好像GitHub有些火.看到开源中国上也有Git的开源版本号管理. 另外看到一篇文章说Git 比 SVN 要好. 就想多了解一下Git.顺便也能够把自己平时的一些代码保存在云端 ...

  10. ACM 入门计划

    acm 本文由swellspirit贡献 ACM • I can accept failure. but I can't accept not trying. Life is often compar ...