2013-10-26 111 views
5
与SBT编译

比方说,我在intellij idea一个scala代码,开口道:IntelliJ IDEA的默认

object Test extends App { 
          // <- I click here 
    def init[T](xs: List[T]) : List[T] = xs match { 
    case List() => throw new Error("empty list") 
    case List(x) => List() // empty list 
    case head :: tail => head :: init(tail) 
    } 

    val list = List(1,2,4) 

    println (init(list)) 

} 

然后,我做什么,要启动这个代码的时候,我字里行间点击这里objectdef是定义为让IDE知道我想要发射什么(在这种情况下是整个对象,因为我没有选择任何方法)。点击CTRL + SHIFT + F10 - 运行。

它开始..我看“测试”在我的配置组合框......但就在那个时候我停止编译过程..并转到配置更改配置..

我更改:是“发射前”部分使其运行“sbt:编译”。我这样做是因为我想依靠SBT而不是IDE

现在的问题是:默认情况下,在Intelly IDEA中有没有一种方法可以在sbt中启动/编译?

+1

我试过快速启动 - >配置 - >项目默认值 - >运行配置 - >默认值 - >应用程序,并在这里更改为'sbt','test:compile'。但是,这似乎没有任何效果,如果我创建一个新的项目,默认回复到IDEA自己的'make'... –

+0

好吧,然后将此视为一个错误:http://youtrack.jetbrains.com/问题/ IDEA-115473会看到。 – ses

回答

3

是的,你可以做到这一点,但你需要确保这是一个有效的SBT项目。要验证,请确保您可以在命令行上通过SBT进行编译和运行。

  1. 安装SBT插件的IntelliJ IDEA
  2. 打开该测试在运行运行配置 - >编辑配置...
  3. 在节“启动之前”卸妆并添加SBT行动“运行SBT Action'compile'“

现在修改您的测试代码并重新运行。你会在状态栏看到SBT编译正在你的Test代码执行之前运行。

更新 为了使这个默认的行为以后所有的运行配置,使得在默认这种变化 - 在编辑配置>应用项目...对话框。

+2

我对这个问题的理解是,您是否可以让IDEA选择该操作_ default_。 –

+0

确切地说,否则当我决定启动不是整个项目/测试集,而是一个参数函数或测试时,我总是需要做/重新配置它。 – ses