2013-01-21 11 views
19

Chcę napisać wtyczkę "MyPlugin", która zależy od innej wtyczki ("io.spray" %% "sbt-twirl"% "0.6.0").W jaki sposób wtyczka SBT może być zależna od innej wtyczki

Po prostu dodanie sbt-twirl do libraryDependencies nie zadziała, , ponieważ wtyczki są publikowane z innym schematem ścieżek niż standardowe biblioteki.

ja również nie może zadeklarować SBT-kręcić jak zależność plugin do MyPlugin projekt, ponieważ MyPlugin nie korzysta z SBT-kręcić bezpośrednio to projekt używając MyPlugin która pośrednio z niego korzystać.

MyPlugin dostarcza zadanie, które ma być uruchamiane po sbt-twirl wygenerował jego źródła (w sourceManaged) i po kompilacji.

Prosty, ale nie idealnym rozwiązaniem byłoby wymagać projektu przy użyciu MyPlugin również zadeklarować SBT-kręcić jako zależność plugin, ale nie jest to DRY ponieważ dwie wtyczki będzie dzielenie niektórych ustawień (katalogi, wersje, itp.), i będą musiały być powtarzane i kompatybilne.

Odpowiedz

27

To powinna być taka sama definicja jak za pomocą wtyczki jako plugin, chyba że przechodzi w build.sbt lub project/Build.scala zamiast project/plugins.sbt:

addSbtPlugin("io.spray" % "sbt-twirl" % "0.6.0") 
+3

robiłam: .settings (addSbtPlugin ("io.spray" % "sbt-twirl"% "0.6.0")) i zadziałało. Dzięki –

+2

To było dla mnie zaskakująco trudne do znalezienia, ale rozwiązanie było takie proste! –

+0

tks :) zadziałało –

Powiązane problemy