Структура каталогов SBT. Что такое "проект"?

проект play имеет папку" project", как это:

    • цель
      • цель

Я всегда думал, что это просто одна из тех жизненных загадок, которые я не должен слишком много думать о, но сегодня мое любопытство взяло верх надо мной.

гуглить дал мне этой в котором упоминается, что папка "проект" верхнего уровня предназначена для sbt конфигурация. Интересно, почему они не назвали это".sbt "a la".git "и почему все еще есть файл" build.sbt " вне этой папки, но я полагаю, что нет никакого удовольствия в том, чтобы сделать вещи действительно разумными.

Он также не упоминает, почему он содержит другую папку "проект" внутри него.

Почему существует вложенная папка "проект"?

2 ответов


http://www.scala-sbt.org/0.13/tutorial/Organizing-Build.html:

построить.sbt скрывает, как sbt действительно работает. сборки sbt определяются с помощью кода Scala. Этот код, сам по себе, должен быть построен. Что может быть лучше, чем с SBT?

каталог проекта-это еще одна сборка внутри вашей сборки, которая знает, как построить вашу сборку. Чтобы отличить сборки, мы иногда используем термин "правильная сборка" для ссылки на вашу сборку и мета-сборку для ссылки на сборка в проекте. Проекты внутри metabuild может ничего и любой другой проект могу сделать. Определение сборки-это проект sbt.

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


SBT является рекурсивным. Он определяет свойства сборки для вашего проекта с помощью кода scala. Где разместить код scala? К другому проекту внутри текущего проекта. Но если само определение проекта является правильным проектом, то его можно настроить с помощью другой конфигурации sbt. И так далее. Ребята из Scala любят рекурсивные структуры.

вы можете изменить версию компилятора scala, параметры компилятора scala для вложенных (в мета-смысле) проектов. Это, вероятно, может изменить способ метапроект интерпретируется, и это может повлиять на самый верхний проект.