SBT: недействительный идентификатор проекта: ожидаемый идентификатор символа при указании на модуль в подкаталоге - PullRequest
0 голосов
/ 27 января 2020

Я многомодульный проект с такой структурой

+- multiModuleProject
  +-module1

  +-dir1
    +-subDirModule1
    +-subDirModule2

  +-module3

  +-build.sbt

Я хочу, чтобы и subDirModule1, и subDirModule2 были их собственными модулями.

Я добавил что-то подобное в build.sbt

lazy val subDir1 = Project(id = "dir1/subDirModule1", base = file("dir1/subDirModule1")
lazy val subDir1 = Project(id = "dir1/subDirModule2", base = file("dir1/subDirModule2")

Я не могу заставить его работать, я продолжаю получать

[error] java.lang.RuntimeException: Invalid project ID: Expected ID character
[error] dir1/subDirModule1
[error]     ^

Но я уверен, что видел использование sla sh в другом проекте, над которым я работал. Что здесь происходит не так?

1 Ответ

1 голос
/ 27 января 2020

Sla sh используется в качестве разделителя между идентификатором проекта и конфигурацией и используется в течение длительного времени, поэтому я подозреваю, что вы запоминаете (если вы этого не сделаете, вам придется все время избегать его, и я по крайней мере, никогда не забуду его увидеть) Конечно, вы можете использовать его в пути (base аргумент), но не в ID:

lazy val subDir1 = Project(id = "subDir1", base = file("dir1/subDirModule1"))

, а затем использовать, например,

sbt> subDir1/compile

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

...