108 votes

Comment sbt peut tirer les artefacts de la dépendance du git ?

J'ai entendu dire (et je sais que j'ai vu des exemples trop, si seulement je peux me rappeler où) sbt peuvent obtenir des dépendances d'un repo git.

Je suis à la recherche pour obtenir la dépendance harrah's/up à partir de github. Le référentiel ne fournit pas de tout artefact fichiers JAR, seulement une source de l'arbre qui est configuré de façon à être construit à l'aide d' sbt. Le processus que je m'imagine, c'est que sbt télécharger la source repo, le construire, et utilisez-les comme la dépendance à l'artefact.

J'ai peut-être imaginer qu' sbt peut en effet faire quelque chose comme cela. Peut-il? Et si oui, comment?

105voto

Alex Dean Points 3997

Vous pouvez importer des nus de dépendances dans votre projet à partir de GitHub en les traitant comme des dépendances du projet, à l'aide de l' dependsOn de l'opérateur. (Ceci est différent de la façon dont précompilés dépendances de la bibliothèque sont inclus).

Notez que vous pouvez spécifier dans quelle branche de tirer à l'aide de # de la notation. Voici quelques Scala SBT code qui fonctionne bien pour moi:

object V {
  val depProject = "master"
  // Other library versions
}

object Projects {
  lazy val depProject = RootProject(uri("git://github.com/me/dep-project.git#%s".format(V.depProject)))
}

// Library dependencies
lazy val myProject = Project("my-project", file("."))
.settings(myProjectSettings: _*)
.dependsOn(Projects.depProject)
.settings(
  libraryDependencies ++= Seq(...

Notez que si vous avez plusieurs SBT projets dependending sur le même projet, il est utile de définir une centrale sbt.boot.directory afin d'éviter des recompilations (voir les instructions ici).

77voto

Kipton Barros Points 12445

Oui en effet. Vous pouvez donner votre une dépendance avec le opérateur et vous pouvez faire référence à un projet Github par son URI, par exemple . Alternativement, vous pouvez le projet, puis référence votre local à copier avec `` . Voir « Configuration complète » sur le wiki SBT pour détails et d’exemples.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X