2015-03-08 3 views
7

Attualmente, ho usato un plugin come questo:In SBT, come usare addSbtPlugin con un URL Github?

addSbtPlugin("com.tuplejump" % "sbt-yeoman" % "0.7.1") 

Ma poi, il fork di questo plugin su github (diciamo https://github.com/myname/play-yeoman.git) e apportare alcune modifiche, quale sarebbe un modo più semplice di usare la mia versione biforcuta di plug-in ? Devo davvero registrare questo fork su un repository Maven/Ivy?

Grazie!

+2

Che dire di usare 'lazy val yeomanPlugin = uri (" sit: //github.com/myname/play-yeoman ")' come menzionato in [sbt docs] (https://github.com/myname/play- yeoman.git)? Stai lavorando su un plugin sbt? –

+1

Giusto per completare il commento di Nader: [1d) Dipendenza del progetto - sbt docs] (http://www.scala-sbt.org/0.13/docs/Plugins.html#1d%29+Project+dependency) – Salem

risposta

3

Utilizzando SBT 0.13.8, sono stato in grado di sostituire la seguente riga nel mio ./project/plugins.sbt:

addSbtPlugin("net.ground5hark.sbt" %% "sbt-concat" % "0.1.8") 

con le seguenti due righe

lazy val root = (project in file(".")).dependsOn(concatPlugin) 

lazy val concatPlugin = uri("https://github.com/ground5hark/sbt-concat.git#342acc34195438799b8a278fda94b126238aae17") 

No altri passaggi erano necessari. Inoltre, si noti che l'URI git ha un hash di commit alla fine. Questo è molto utile per garantire che una specifica versione della fonte specifica del lavoro sia utilizzata nel progetto, piuttosto che qualunque sia l'ultimo stato sconosciuto della sorgente.

+1

Come funziona quando il repository GitHub è privato? Come posso fornire utente/password o chiave ssh? – mkurz

+0

@mkurz, non l'ho mai fatto da solo, ma questo collegamento sembra avere alcune soluzioni: http://stackoverflow.com/a/18880397/4978821 –

0

seguire questa procedura:

  1. Aggiungi -SNAPSHOT suffisso alla versione del plugin, vale a dire version := "1.0.0-SNAPSHOT"
  2. Run sbt publishLocal dalla riga di comando.
  3. Fare riferimento alla versione di istantanea dal proprio plugins.sbt.