My .sbt file looks something like this:
lazy val common = (project in file("./common"))
  .settings(
    // other settings
  )
lazy val one = (project in file("./one"))
  .dependsOn(common)
  .settings(
    // other settings
    addCommandAlias("build", ";clean;assembly;foo")
  )
lazy val two = (project in file("./two"))
  .dependsOn(common)
  .settings(
    // other settings
    addCommandAlias("build", ";clean;compile;bar")
  )
Additionally I have two tasks foo and bar which are only valid in their respective projects.
My tests show that upon calling build - no matter which project I am in - both aliases are being called.
And for tasks, the keys can already be only defined at top-level of the .sbt file (e.g. val foo = taskKey[Unit]("Does foo")).
I want to know how to correctly implement tasks and command aliases on project level.
Is that possible?