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. schema for clojure

    Schema for Clojure Data Shape Declaration and Validation 1.何为schema schema是描写叙述数据形式的一种clojure数据结构,可用 ...

  2. 【C++ Primer每天刷牙】一间 迭代器

    迭代器的介绍 概述 迭代器是一种检查容器内元素并遍历元素的数据类型. 迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或所有元素,每一个迭代器对象代表容器中的确定的地址.迭代 ...

  3. openstack 网络架构 nova-network + neutron

    openstack网络架构(nova-network/neutron) openstack网络体系中,网络技术没有创新,但用到的技术点很庞杂,包含bridge.vlan.gre.vxlan.ovs.o ...

  4. 记录我第一次在Android开发图像处理算法的经历

    大概是四月底的时候.有人加我QQ问我是否做能做一些基于图像皮肤检測的算法, 主要是实现对皮肤六项指标: 1.      水分 2.      有份 3.      痤疮与痘痘 4.      色斑与肤 ...

  5. Signed comparison in Verilog

    Signed comparison in Verilog¶ When you write this in Verilog: wire [7:0] a; wire [7:0] b; wire less; ...

  6. jQuery.reveal弹出层使用

    最近用到弹出层,还得自定义UI,原本用的artDialog太庞大,不合适了,于是就找到了这个东西,又小又好用,基础的弹出遮罩都有了,想要什么还不是Coder自己说了算. 这个插件是基于Jquery实现 ...

  7. git寻根——^和~的区别(转)

    一. 引子 在git操作中,我们可以使用checkout命令检出某个状态下文件,也可以使用reset命令重置到某个状态,这里所说的“某个状态”其实对应的就是一个提交(commit). 我们可以把一个g ...

  8. Json.NET提供依赖注

    Json.NET提供依赖注 [.NET] 使用Json.NET提供依赖注入功能(Dependence Injection) 前言 在一些小型项目的开发情景里,系统不需要大型DI Framework所提 ...

  9. linux(fedora) 下dvwa 建筑环境

    linux(fedora)下dvwa组态 1.下载httpd,dvwa,mysql,mysqlserver, php-mysql,php 除了dvwa 这是外界进入下一官方网站.该服务通过休息inst ...

  10. ABP之动态WebAPI

    ABP之动态WebAPI ABP的动态WebApi实现了直接对服务层的调用(其实病没有跨过ApiController,只是将ApiController公共化,对于这一点的处理类似于MVC,对服务端的 ...