SBT - В чем разница между именем и идентификатором?

Мне было интересно, есть ли разница в SBT между именем проекта и id.

Я заметил примеры файлов build.sbt со следующим ключом:

name := "My Project"

И я заметил файлы Build.scala с:

Project(id = "My Project", base = file("."))

Есть ли разница? Должны ли они быть одинаковыми или это не имеет значения? Для чего они используются?

Спасибо!

Ответы

Ответ 1

Название проекта должно использоваться для имени вашего проекта, видимого заголовка для любой документации.

Идентификатор используется для ссылки на проект для изменения настроек или с точки зрения управления зависимостями, т.е. для подключения подпроекта к корневому проекту, который вы можете сказать subproject.dependsOn(rootProjectId)

Ответ 2

В вашем файле build.sbt есть одно определение проекта. Вы также можете передать атрибут имени в настройки Project в вашей build.scala. Поскольку у вас может быть несколько подпроектов в файле сборки, вы должны предоставить идентификатор для каждого из них, тогда как имя проекта останется прежним.