Я создал новый проект со следующей структурой (запутанные имена:):
Parent
|-- Child A
|-- Child B
Определение легкой сборки в Parent/build.sbt
выглядит следующим образом:
name := "Parent"
scalaVersion := "2.9.1"
version := "1.0.0-SNAPSHOT"
Полное определение в Parent/project/Build.scala
выглядит следующим образом:
import sbt._
import Keys._
object MyBuild extends Build {
lazy val root = Project(id = "Parent",
base = file(".")) aggregate(projectA, projectB)
lazy val projectA = Project(id = "Project A",
base = file("projectA"))
lazy val projectB = Project(id = "Project B",
base = file("projectB"))
}
В ~/.sbt/plugins/build.sbt
у меня есть это:
resolvers += "sbt-idea-repo" at "http://mpeltonen.github.com/maven/"
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "0.11.0")
Если я запускаю sbt gen-idea
в папке Parent
, все зависимости загружаются правильно, и определения проекта создаются правильно для Parent
. Однако sbt также пытается выполнить команду в подпроектах projectA
и projectB
. Это терпит неудачу со следующим:
[warn] module not found: com.github.mpeltonen#sbt-idea;0.11.0
[warn] ==== local: tried
[warn] /home/me/.ivy2/local/com.github.mpeltonen/sbt-idea/scala_2.9.1/sbt_0.11.1/0.11.0/ivys/ivy.xml
[warn] ==== Maven2 Local: tried
[warn] file:/home/me/.m2/repository/com/github/mpeltonen/sbt-idea_2.9.1_0.11.1/0.11.0/sbt-idea-0.11.0.pom
[warn] ==== typesafe-ivy-releases: tried
[warn] http://repo.typesafe.com/typesafe/ivy-releases/com.github.mpeltonen/sbt-idea/0.11.0/ivys/ivy.xml
[warn] ==== public: tried
[warn] http://repo1.maven.org/maven2/com/github/mpeltonen/sbt-idea_2.9.1_0.11.1/0.11.0/sbt-idea-0.11.0.pom
[warn] ==== Scala-Tools Maven2 Repository: tried
[warn] http://scala-tools.org/repo-releases/com/github/mpeltonen/sbt-idea_2.9.1_0.11.1/0.11.0/sbt-idea-0.11.0.pom
[warn] ==== Scala-Tools Maven2 Snapshots Repository: tried
[warn] http://scala-tools.org/repo-snapshots/com/github/mpeltonen/sbt-idea_2.9.1_0.11.1/0.11.0/sbt-idea-0.11.0.pom
[info] Resolving commons-io#commons-io;2.0.1 ...
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: com.github.mpeltonen#sbt-idea;0.11.0: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn]
[warn] Note: Some unresolved dependencies have extra attributes. Check that these dependencies exist with the requested attributes.
[warn] com.github.mpeltonen:sbt-idea:0.11.0 (sbtVersion=0.11.1, scalaVersion=2.9.1)
[warn]
[error] {file:/opt/workspace/Parent/}ProjectA/*:update-sbt-classifiers: sbt.ResolveException: unresolved dependency: com.github.mpeltonen#sbt-idea;0.11.0: not found
[info] Created /opt/workspace/Parent/.idea_modules/project.iml
Я получаю тот же результат, если переместить ~/.sbt/plugins/build.sbt
на Parent/project/build.sbt
.
Как я могу помешать детям Parent
выполнить gen-idea
?