2013-07-11 2 views

ответ

2

Главный трюк здесь находится в области. Если вы действительно хотите понять, как работает SBT, всегда используйте три команды:

show <setting> - отображает значение указанной настройки.
show <task> - Оценивает заданную задачу и отображает значение, возвращаемое задачей.

inspect <key> - показывает информацию о настройке

inspect tree <key> - отображает key и его зависимостей в виде древовидной структуры.

Есть много других хороших команд, но это поможет вам лучше всего понять основы SBT.

Что касается синтаксиса. Каждая сборка состоит из settings, tasks, projects и scopes. Слишком много, чтобы рассказать о них, есть хорошее объяснение, данное официальному лицу site. И синтаксис вы дали все об этом плане, например, давайте посмотрим на:

compile:scalaSource::sourceDirectory 
    1   2    3 

1 - это сфера Compile
2 - это зависит от настройки
3 - зависимость Настройка

Если вы наберете inspect scalaSource вы увидите, что, если вы наберете scalaSource в сессии SBT это будет вызывать scalaSource в compile scope (compile:scalaSource), это объясняет разницу между compile:compile и compile, это являются сэм e (звонок inspect по телефону compile). Вторая вещь, которую вы должны смотреть на в inspect scalaSource является Dependencies: части: compile:sourceDirectory, так scalaSource зависит от настройки sourceDirectory в compile:sourceDirectory и, если вы уже видели некоторые сборки на GitHub, в *.sbt или *.scala файлах сборки написано как:

sourceDirectory in (Compile, scalaSource) := .... 

Только для физических упражнений, звоните:

show compile:scalaSource::sourceDirectory 

и вы увидите выход, как это: <project-dir>/src/main, а затем позвонить:

set sourceDirectory in (Compile, scalaSource) <<= baseDirectory(_/"src"/"sc") 

, а затем снова:

show compile:scalaSource::sourceDirectory 
Смежные вопросы