tl;dr je l'appellerais un truc pas une caractéristique de la sbt. Vous avez été prévenu.
Disons que vous avez file.jar
publier. Comme pour tout outil de construction, sbt y compris, c'est pour exécuter les tâches qui finit par créer un artefact d'un fichier jar dans la plupart des cas des fichiers dans un projet.
Le projet définit les coordonnées de l'objet.
L'astuce consiste à tirer parti de ce que sbt nécessite de configurer l'environnement (= les coordonnées) pour le pot à être publié (sinon, vous auriez à le spécifier sur la ligne de commande qui peut ou peut ne pas être très convivial).
Créer un build.sbt
avec les réglages nécessaires - organization
, name
, version
et, éventuellement, scalaVersion
- et l'enregistrer où le fichier jar est.
organization := "org.abc"
name := "my-own-publish-jar"
version := "1.0.0"
scalaVersion := "2.11.3"
packageBin in Compile := file(s"${name.value}_${scalaBinaryVersion.value}.jar")
Vous pouvez vous l'avez remarqué, l'accumulation des changements compile:package
de la tâche afin de pointer vers le fichier jar.
C'est tout.
Exécuter sbt publishLocal
et le fichier jar doit être dans le Ivy2 local de dépôt, ~/.ivy2/local/org.abc/my-own-publish-jar_2.11/1.0.0/jars/my-own-publish-jar_2.11.jar
.
protip l'Écriture d'un plugin pour le faire avec les coordonnées spécifiées sur la ligne de commande devrait être assez facile maintenant.