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. React的React Native

    React的React Native React无疑是今年最火的前端框架,github上的star直逼30,000,基于React的React Native的star也直逼20,000.有了React ...

  2. swift新手入门视频教程-08-枚举

    我自己录制的swift菜鸟入门,大家拍砖,有什么问题能够在这里留言. 主要内容: 枚举语法(Enumeration Syntax) 匹配枚举值与Swith语句(Matching Enumeration ...

  3. jQuery地图热点效应-后在弹出的提示鼠标层信息

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  4. BZOJ 1015 JSOI2008 星球大战 starwar 并检查集合

    标题效果:给定一个无向图.联通谋求块的数目,以及k一个点的破坏后每次:联通,块的数目 侧面和摧毁的地步全记录,我们可以做相反的. 需要注意的是该点不能算作破坏联通块 #include<cstdi ...

  5. 设计模式——依赖倒置原则实例(PHP实现)

    <?php /** * 设计模式--依赖倒置原则实例 * Created by DannyWang * jue.wang@yulore.com * 2015-05-05 */ abstract ...

  6. java RC4加密和解码

    package com.*; public class RC4 { public static String decry_RC4(byte[] data, String key) { if (data ...

  7. ZOJ-3652-Maze(BFS)

    Celica is a brave person and believer of a God in the bright side. He always fights against the mons ...

  8. 彩色图像上执行Mean Shift迭代搜索目标 ,维加权直方图 + 巴氏系数 + Mean Shift迭代

    今天要给大家分享的是: 在彩色图像上进行Mean Shift迭代搜索目标 二维加权直方图+巴氏系数+Mean Shift迭代 关于 加权直方图.巴氏系数.Mean Shift迭代 这三者之间的关系请大 ...

  9. ArrayList实现根据某属性大小相间排序

    Java本身提供了一个集合的帮助类java.util.Collections,提供了对集合操作一些方法,借助于此类提供的sort方法可以实现对List进行排序操作 import java.util.A ...

  10. Oracle 树操作

    Oracle 树操作(select…start with…connect by…prior) oracle树查询的最重要的就是select…start with…connect by…prior语法了 ...