Я пытаюсь определить многопроектную сборку с последовательным числом подпроектов:
.
├── build.sbt
├── project/
│ ├── dependencies.scala
│ ├── tasks.scala
│ └── settings.scala
├── lib_1/
│ └── src/
├── ...
└── lib_n/
└── src/
Эти подпроекты в настоящее время определены в build.sbt
:
val outputJarFolder = "/some/path/"
lazy val comonSettings = /* ... */
lazy val lib_1 = (project in file ("lib1")).settings(
name:="LibOne",
commonSettings,
libraryDependencies ++= Seq(scalaTest, jsonLib, scalaXML, commonsIo),
Compile/packageBin/artifactPath := file(outputJarFolder + "lib1.jar")
)
// ... more libs ...
lazy val lib_n = (project in file ("libn")).settings(
name:="LibLast",
commonSettings,
Compile/packageBin/artifactPath := file(outputJarFolder + "libn.jar")
)
.depensOn(lib_2, lib_12)
Как я могу определить эти подпроекты в другом файле, отличном от build.sbt , чтобы "очистить" этот файл? Я все еще хочу иметь возможность определять их в лексикографическом порядке (поэтому lazy
является обязательным). Я работаю с sbt версии 1.2.8 и scala 2.10.
Я пытался:
- Поместить объявление этих
lib_k
переменных в файл scalaи импортируя его -> sbt говорит: "классы не могут быть ленивыми" . - Поместить это объявление в объект (или в класс и создать его экземпляр в
build.sbt
) ->sbt projects
не содержит подпроектов.