Ho diversi progetti SBT 0.13/Play 2.2 (siti Web). Sono tutti multi-modulo in quanto condividono alcune funzionalità comuni. Ciò rende i loro file di configurazione del progetto sia complessi che quasi identici, ma non del tutto.Come utilizzare configurazioni condivise su più progetti SBT (Play)?
Mi piacerebbe essere in grado di condividere il più possibile di questi file di configurazione tra i progetti (aggiornamenti di riproduzione frequenti rendono il mantenimento di siti Web 5+ un dolore reale, per non parlare di quasi tutti identici, ma- l'evoluzione delle liste di dipendenza tra i progetti).
build.properties e plugins.sbt sono identici tra i progetti e possono essere sovrascritti da un semplice script. Grande.
Build.scala è più complicato - Vorrei introdurre una classe base condivisa in questo modo:
abstract class MyBuildBase extends Build { ... }
che nel Build.scala fare:
object ApplicationBuild extends MyBuildBuild { ... }
Affinché questo per fare qualsiasi senso, MyBuildBase.scala deve essere condiviso tra i progetti. Questo può essere fatto con svn: external, che opera sulle directory. Il che significa che ho bisogno in qualche modo di rendere questa directory condivisa accessibile quando Build.scala è compilato (altrimenti sbt si lamenta rumorosamente).
Leggere http://www.scala-sbt.org/0.13.0/docs/Detailed-Topics/Classpaths.html e http://www.scala-sbt.org/0.13.0/docs/Getting-Started/Full-Def.html sembra che questo dovrebbe essere possibile.
Tuttavia, è estremamente poco chiaro per me cosa inserire effettivamente nel file progetto/progetto/Build.scala per ottenere effettivamente questo: non riesco a trovare un esempio di "un file di creazione di sbt che è destinato a creare un sbt build file e include alcuni file sorgente aggiuntivi nella build ".
Qualche suggerimento?
Eccellente suggerimento. Risulta che SVN è in grado di gestire file esterni e non solo directory dalla v1.6, quindi l'ho risolto in questo modo, in quanto era più semplice nel mio caso particolare. Tuttavia, la tua risposta copre la domanda che ho effettivamente posto, contrassegnandola come tale. – Jxtps