Wie veröffentliche ich jar im lokalen Repository?
Habe ich eine Bibliothek erstellt, um ein Glas (kein sbt-Projekt, kein Quellcode, nur die jar Datei), die nicht auf einem repository.
Gibt es eine Möglichkeit zum veröffentlichen der jar-lokal, so kann ich die Abhängigkeit mit der libraryDependencies += "org.xxx" % "xxx" % "1.0"
notation? (Ich weiß schon, wie Sie die Datei zu einem Projekt durch kopieren in die lib
Ordner.)
InformationsquelleAutor der Frage Jeff Axelrod | 2011-10-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den veröffentlichen-lokale Aktion wird verwendet, um zu veröffentlichen Sie Ihr Projekt auf einem lokalen Ivy-repository. Standardmäßig wird das lokale repository in ${user.home}/.ivy2/local. Dann können Sie dieses Projekt von anderen Projekten auf der gleichen Maschine Quelle
EDIT: Sorry, habe ich falsch gelesen deine Frage. Hier ist ein Beispiel zu veröffentlichen, ein Glas oder Quellen, um Ihre lokalen ivy repo.
InformationsquelleAutor der Antwort Renaud
tl;dr würde ich es nennen, ein trick, nicht eine Funktion des sbt. Sie wurden gewarnt.
Sagen wir mal du hast
file.jar
zu veröffentlichen. So ist für alle build-tool sbt darunter, es ist, um tasks auszuführen, dass irgendwann ein Artefakt - eine-jar-Datei in den meisten Fällen - aus den Dateien in einem Projekt.Das Projekt setzt die Koordinaten für das Artefakt.
Der trick ist, das zu nutzen, was sbt erfordert einrichten die Umwelt (= die Koordinaten) für die jar veröffentlicht werden (sonst müsste man geben Sie auf der Befehlszeile, die möglicherweise oder möglicherweise nicht sehr benutzerfreundlich).
Erstellen Sie eine
build.sbt
mit den nötigen Einstellungen -organization
name
version
und möglicherweisescalaVersion
- und speichern Sie Sie, wo die jar-Datei ist.Möglicherweise haben Sie bemerkt, die änderungen erstellen
compile:package
Aufgabe, die jar-Datei.Das ist es.
Ausführen
sbt publishLocal
- und die jar-Datei sollte in der Ivy2 lokalen repository, d.h.~/.ivy2/local/org.abc/my-own-publish-jar_2.11/1.0.0/jars/my-own-publish-jar_2.11.jar
.protip das Schreiben eines plugins, um es zu tun mit den Koordinaten in der Befehlszeile angegeben werden sollten, ganz einfach jetzt.
InformationsquelleAutor der Antwort Jacek Laskowski
Lassen Sie uns sagen, Sie haben
wetElephant.jar
undwetElephant-javadoc.jar
Dateien einige 3rd-party-Bibliothek und entsprechende javadocs, die Sie veröffentlichen wollen, auf Ihrem lokalen repo-und Referenz von einem anderen Projekt mitlibraryDependencies
sbt taskKey.Hier ist, was Sie tun müssen.
wetElephant.jar
undwetElephant-javadoc.jar
) inmodules\wetElephant
Projekt definieren in Ihrem bauen.sbt - Datei (oder Bauen.scala - Datei)
Call
publishLocal
Aufgabe von sbt/Aktivator (ich habe es aus Aktivator und dem Präfix es mit Zweck dieses hilfsprojektes name):... und Lesen Sie die Ausgabe, um zu sehen, was und wo wurde veröffentlicht:
Optional verwenden diese Bibliotheken in einem anderen Projekt
Disclaimer: ich weiß nicht, wie man es nicht veröffentlichen Quellen...
InformationsquelleAutor der Antwort pawel.panasewicz
Hier ist ein blog-post, die ich gefolgt, um push-sbt Artefakt zu einem maven-repository (lokal und remote) vor ein paar Monaten.
http://brizzled.clapper.org/id/100/
InformationsquelleAutor der Antwort lobster1234
Versuchen Sie dies:
http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html
InformationsquelleAutor der Antwort Roy Truelove
Erstellte ich ein sample Play Framework/sbt-Projekt, das erstellt eine lokale repository (nicht nur
publish-local
) hier: https://github.com/muymoo/local-ivy-repo-sbtSpeziell schauen
Build.scala
makeLocalRepoSettings(publishedProjects):_*
und
localRepoArtifacts += "org.apache.ws.security" % "wss4j" % "1.6.9"
Diese
localRepoArtifacts
finden Sie in meinem lokalen ivy-repo, aber ich denke, Sie könnten Bearbeiten, das funktioniert mit plain old jar-Dateien als auch.Ausführen:
play local-repository-created
Es ist eine einfachere version von https://github.com/sbt/sbt-remote-controldie nicht eine ganze Menge mehr in Ihrer
Build.scala
.InformationsquelleAutor der Antwort muymoo