Ich habe mehrere SBT-Projekte, die alle ein gemeinsames Setup haben - z. Multimodul, publishTo Einstellungen etc usw.SBT allgemeine Build-Einstellungen
Wie stelle ich eine gemeinsame z. CommonBuild-Klasse, die jedes der Projekte daraus erstrecken kann? Zum Beispiel:
trait CommonBuild {
val publishSettings = Seq(
publishTo := Some("", ""),
credentials += ...
)
def module(name: String) (
settings: Seq[Setting[_]],
projectId: String = PROJECT + "-" + name,
dirName: String = name,
srcPath: String = PROJECT + name
) = Project(projectId, file(dirName), settings = (buildSettings ++ srcPathSetting(projectId, srcPath)) ++ publishSettings ++ settings)
}
Jetzt kann es durch ein Projekt Build verwendet werden:
object ProjABuild extends CommonBuild {
// use CommonBuild methods/vals
}
object ProjBBuild extends CommonBuild {
// use CommonBuild methods/vals
}
Sind diese Projekte Sbt-Projekte oder Sbt-Teilprojekte? –
Projekt A und B sind dedizierte Sbt-Projekte, keine Teilprojekte/Module. – Dzhu
es klingt wie die Frage ist vielleicht ein Spezialfall der Verwendung von externen Bibliothekscode in build.scala? das würde dein Ziel erreichen, oder? – Owen