2013-10-26 3 views
5

Допустим, у меня есть scala кода, открытие в intellij idea:IntelliJ Idea компиляции с SBT по умолчанию

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)) 

} 

Тогда, что я делаю, когда хочу, чтобы запустить этот код, я нажимаю между строк, где object и def является определенная так, чтобы IDE знал, что я хочу запустить (в данном случае весь объект, потому что я не выбираю какой-либо метод). Нажмите CTRL + SHIFT + F10 - для запуска.

Она начинается .. Я вижу «Тест» в моей конфигурации комбо-бокс ... Но в этот самый момент я остановить процесс компиляции .. и перейти к такой конфигурации, чтобы изменить конфиг ..

Я change: is «Перед запуском» раздел, чтобы он работал с «sbt: compile». Я делаю это, потому что хочу полагаться на SBT, но не на IDE.

Вопрос: Есть ли способ запустить/скомпилировать в sbt по умолчанию в IntellyJ IDEA?

+1

Я попробовал Quick Start -> Configure -> Project Defaults -> Run Configurations -> Defaults -> Application и изменил здесь на 'sbt', 'test: compile'. Тем не менее, это, похоже, не имеет никакого эффекта, если я создаю новый проект, значения по умолчанию возвращаются к собственному «make» IDEA ... –

+0

Итак, подумайте об этом как об ошибке: http://youtrack.jetbrains.com/ выпуск/IDEA-115473. – ses

ответ

3

Да, вы можете это сделать, но вам нужно убедиться, что это действующий проект SBT. Чтобы убедиться, что вы можете скомпилировать и запустить из SBT в командной строке.

  1. Установите плагин SBT для IntelliJ IDEA
  2. Открыть конфигурацию запуска для этого теста в Run -> Edit Configurations ...
  3. В "перед запуском" раздела удалить Марка и добавить действие SBT " Запуск SBT Action 'compile' "

Теперь измените свой тестовый код и заново запустите. Вы увидите в строке состояния, что SBT-компиляция выполняется до выполнения тестового кода.

Обновлен Чтобы сделать это поведение по умолчанию для всех будущих конфигураций пробега, сделать это изменение в Умолчаниях -> пункт Application в Edit Configurations ... диалоговый.

+2

Мое понимание вопроса заключалось в том, можете ли вы сделать IDEA для этого действия _by default_. –

+0

Точно, в противном случае мне нужно сделать/повторно настроить его все время, когда я решаю запустить не весь проект/тестовый набор, а одну особенную функцию или тест. – ses

Смежные вопросы