Ho diversi progetti SBT che hanno tutti una configurazione comune - ad es. multi module, publishTo settings etc etc.Impostazioni di configurazione comuni SBT
Come faccio a fornire un codice comune ad es. Classe CommonBuild che ognuno dei progetti può estendere da esso? Per esempio:
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)
}
Ora può essere usato da un accumulo di progetto:
object ProjABuild extends CommonBuild {
// use CommonBuild methods/vals
}
object ProjBBuild extends CommonBuild {
// use CommonBuild methods/vals
}
Questi progetti sono dedicati a progetti Sbt o sono sottoprogetti Sbt? –
I progetti A e B sono progetti Sbt dedicati, non progetti secondari/moduli. – Dzhu
sembra che la domanda sia un caso particolare su come utilizzare il codice della libreria esterna in build.scala? che raggiungerebbe il tuo obiettivo, giusto? – Owen