2014-09-27 6 views
14

Ich habe mehrere Projekte. Ich verwende publishLocal, um das lokale Repository zu aktualisieren. Manchmal arbeite ich an ein paar von ihnen parallel und ich möchte nicht die Versionsnummern aktualisieren.Wie können lokale stabile Versionsartefakte mit publishLocal überschrieben werden?

So verwende ich publishLocal, die gut funktioniert, aber es gibt diese Warnung

[warn] This usage is deprecated and will be removed in sbt 1.0. 
[warn] Attempting to overwrite /home/tim/.ivy2/local/com.optrak/vrpmodel_2.11/0.8.3/ivys/ivy.xml.sha1 

So vermutlich sollte ich etwas anderes verwenden. Aber was?

+0

Können Sie teilen, was die abhängigen Projekte sind? Gehören sie alle zu einer einzigen Anwendungseinheit? Wie groß ist die Abhängigkeit zwischen ihnen? Sie könnten statt dessen 'ProjectRef' verwenden. –

+0

Die Projekte befinden sich alle innerhalb der gleichen Familie einer Anwendung, sind jedoch aufgeteilt, weil zum Beispiel einige akka benötigen und andere nicht. Einige werden auf Android verwendet werden. In der unmittelbaren Menge gibt es einen gerichteten Graphen von Beziehungen - d. H. Keine zyklischen Abhängigkeiten. Und sie sitzen alle im Sam-Git-Repo (nicht sicher, ob das irgendeinen Unterschied macht) und befinden sich auf der Festplatte in untergeordneten Verzeichnissen desselben (leeren) Elternteils. –

Antwort

21

Alles beginnt als a workaround for #1156, die sagt (in #1156):

Grundsätzlich wie von sbt 0.13.2 können Sie nicht mehr Release erneut veröffentlichen, wenn es bereits vorhanden ist. Dies ist eine ziemlich gefährliche Sache zu tun, weil es führt zu gebrochenen Caches überall. Nur -SNAPSHOTs dürfen erneut veröffentlicht werden.

Es bedeutet, dass Sie publishLocal eine stabile Version nicht SNAPSHOT und die bevorzugte Option ist nicht stabile Versionen überschrieben.

Als Abhilfe können Sie isSnapshot := true in @jsuereth's comment als bestätigt verwenden können:

isSnapshot, zur Zeit, bezeichnet nur, dass die Build vorherigen Werte überschreiben können.

bestätigte ich es selbst auch mit den folgenden build.sbt:

version := "1.0.0" 

die Sitzung Siehe:

➜ stable-version-published-twice xsbt 
JAVA_HOME=/Library/Java/JavaVirtualMachines/java8/Contents/Home 
SBT_OPTS= -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -Dfile.encoding=UTF-8 
[info] Loading global plugins from /Users/jacek/.sbt/0.13/plugins 
[info] Updating {file:/Users/jacek/.sbt/0.13/plugins/}global-plugins... 
[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[info] Done updating. 
[info] Set current project to stable-version-published-twice (in build file:/Users/jacek/sandbox/stable-version-published-twice/) 
> show version 
[info] 1.0.0 

Wie Sie das Projekt 1.0.0 Version bemerkt haben. Hier geht die erste publishLocal.

> publishLocal 
[info] Updating {file:/Users/jacek/sandbox/stable-version-published-twice/}stable-version-published-twice... 
[info] Packaging /Users/jacek/sandbox/stable-version-published-twice/target/scala-2.10/stable-version-published-twice_2.10-1.0.0-sources.jar ... 
[info] Done packaging. 
[info] Wrote /Users/jacek/sandbox/stable-version-published-twice/target/scala-2.10/stable-version-published-twice_2.10-1.0.0.pom 
[info] Resolving org.fusesource.jansi#jansi;1.4 ... 
[info] Done updating. 
[info] :: delivering :: default#stable-version-published-twice_2.10;1.0.0 :: 1.0.0 :: release :: Sun Sep 28 22:46:10 CEST 2014 
[info] delivering ivy file to /Users/jacek/sandbox/stable-version-published-twice/target/scala-2.10/ivy-1.0.0.xml 
[info] Packaging /Users/jacek/sandbox/stable-version-published-twice/target/scala-2.10/stable-version-published-twice_2.10-1.0.0-javadoc.jar ... 
[info] Done packaging. 
[info] Packaging /Users/jacek/sandbox/stable-version-published-twice/target/scala-2.10/stable-version-published-twice_2.10-1.0.0.jar ... 
[info] Done packaging. 
[info] published stable-version-published-twice_2.10 to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/poms/stable-version-published-twice_2.10.pom 
[info] published stable-version-published-twice_2.10 to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/jars/stable-version-published-twice_2.10.jar 
[info] published stable-version-published-twice_2.10 to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/srcs/stable-version-published-twice_2.10-sources.jar 
[info] published stable-version-published-twice_2.10 to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/docs/stable-version-published-twice_2.10-javadoc.jar 
[info] published ivy to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/ivys/ivy.xml 
[success] Total time: 0 s, completed Sep 28, 2014 10:46:10 PM 

Es ging gut (wie erwartet). Hier geht die andere publishLocal (das sollte mit Warnungen erfolgreich sein - This usage is deprecated and will be removed in sbt 1.0. - da wir die stabile Version neu veröffentlichen).

> publishLocal 
[info] Wrote /Users/jacek/sandbox/stable-version-published-twice/target/scala-2.10/stable-version-published-twice_2.10-1.0.0.pom 
[info] :: delivering :: default#stable-version-published-twice_2.10;1.0.0 :: 1.0.0 :: release :: Sun Sep 28 22:46:18 CEST 2014 
[info] delivering ivy file to /Users/jacek/sandbox/stable-version-published-twice/target/scala-2.10/ivy-1.0.0.xml 
[warn] Attempting to overwrite /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/poms/stable-version-published-twice_2.10.pom 
[warn] This usage is deprecated and will be removed in sbt 1.0. 
[warn] Attempting to overwrite /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/poms/stable-version-published-twice_2.10.pom.sha1 
[warn] This usage is deprecated and will be removed in sbt 1.0. 
[warn] Attempting to overwrite /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/poms/stable-version-published-twice_2.10.pom.md5 
[warn] This usage is deprecated and will be removed in sbt 1.0. 
[info] published stable-version-published-twice_2.10 to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/poms/stable-version-published-twice_2.10.pom 
[warn] Attempting to overwrite /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/jars/stable-version-published-twice_2.10.jar 
[warn] This usage is deprecated and will be removed in sbt 1.0. 
[warn] Attempting to overwrite /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/jars/stable-version-published-twice_2.10.jar.sha1 
[warn] This usage is deprecated and will be removed in sbt 1.0. 
[warn] Attempting to overwrite /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/jars/stable-version-published-twice_2.10.jar.md5 
[warn] This usage is deprecated and will be removed in sbt 1.0. 
[info] published stable-version-published-twice_2.10 to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/jars/stable-version-published-twice_2.10.jar 
[warn] Attempting to overwrite /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/srcs/stable-version-published-twice_2.10-sources.jar 
[warn] This usage is deprecated and will be removed in sbt 1.0. 
[warn] Attempting to overwrite /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/srcs/stable-version-published-twice_2.10-sources.jar.sha1 
[warn] This usage is deprecated and will be removed in sbt 1.0. 
[warn] Attempting to overwrite /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/srcs/stable-version-published-twice_2.10-sources.jar.md5 
[warn] This usage is deprecated and will be removed in sbt 1.0. 
[info] published stable-version-published-twice_2.10 to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/srcs/stable-version-published-twice_2.10-sources.jar 
[warn] Attempting to overwrite /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/docs/stable-version-published-twice_2.10-javadoc.jar 
[warn] This usage is deprecated and will be removed in sbt 1.0. 
[warn] Attempting to overwrite /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/docs/stable-version-published-twice_2.10-javadoc.jar.sha1 
[warn] This usage is deprecated and will be removed in sbt 1.0. 
[warn] Attempting to overwrite /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/docs/stable-version-published-twice_2.10-javadoc.jar.md5 
[warn] This usage is deprecated and will be removed in sbt 1.0. 
[info] published stable-version-published-twice_2.10 to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/docs/stable-version-published-twice_2.10-javadoc.jar 
[warn] Attempting to overwrite /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/ivys/ivy.xml 
[warn] This usage is deprecated and will be removed in sbt 1.0. 
[warn] Attempting to overwrite /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/ivys/ivy.xml.sha1 
[warn] This usage is deprecated and will be removed in sbt 1.0. 
[warn] Attempting to overwrite /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/ivys/ivy.xml.md5 
[warn] This usage is deprecated and will be removed in sbt 1.0. 
[info] published ivy to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/ivys/ivy.xml 
[success] Total time: 0 s, completed Sep 28, 2014 10:46:18 PM 

Das ging wie erwartet. Die Warnungen sind da.

Lassen Sie uns gesetzt isSnapshot zu true die stabile Version als Wechsel zu bezeichnen.

HINWEIS ich es nicht empfehlen würde, obwohl, da einige andere Code in der Build auf einer richtigen isSnapshot seine false für 1.0.0 verlassen werden können.

> set isSnapshot := true 
[info] Defining *:isSnapshot 
[info] The new value will be used by *:deliverLocalConfiguration, *:publishConfiguration and 1 others. 
[info] Run `last` for details. 
[info] Reapplying settings... 
[info] Set current project to stable-version-published-twice (in build file:/Users/jacek/sandbox/stable-version-published-twice/) 

Lassen Sie uns publishLocal die stabile Version wieder.

> publishLocal 
[info] Wrote /Users/jacek/sandbox/stable-version-published-twice/target/scala-2.10/stable-version-published-twice_2.10-1.0.0.pom 
[info] :: delivering :: default#stable-version-published-twice_2.10;1.0.0 :: 1.0.0 :: integration :: Sun Sep 28 22:46:44 CEST 2014 
[info] delivering ivy file to /Users/jacek/sandbox/stable-version-published-twice/target/scala-2.10/ivy-1.0.0.xml 
[info] published stable-version-published-twice_2.10 to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/poms/stable-version-published-twice_2.10.pom 
[info] published stable-version-published-twice_2.10 to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/jars/stable-version-published-twice_2.10.jar 
[info] published stable-version-published-twice_2.10 to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/srcs/stable-version-published-twice_2.10-sources.jar 
[info] published stable-version-published-twice_2.10 to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/docs/stable-version-published-twice_2.10-javadoc.jar 
[info] published ivy to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/ivys/ivy.xml 
[success] Total time: 0 s, completed Sep 28, 2014 10:46:44 PM 

Es ging ohne Warnungen. Lassen Sie uns versuchen publishLocal wieder heraus.

> publishLocal 
[info] Wrote /Users/jacek/sandbox/stable-version-published-twice/target/scala-2.10/stable-version-published-twice_2.10-1.0.0.pom 
[info] :: delivering :: default#stable-version-published-twice_2.10;1.0.0 :: 1.0.0 :: integration :: Sun Sep 28 22:46:46 CEST 2014 
[info] delivering ivy file to /Users/jacek/sandbox/stable-version-published-twice/target/scala-2.10/ivy-1.0.0.xml 
[info] published stable-version-published-twice_2.10 to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/poms/stable-version-published-twice_2.10.pom 
[info] published stable-version-published-twice_2.10 to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/jars/stable-version-published-twice_2.10.jar 
[info] published stable-version-published-twice_2.10 to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/srcs/stable-version-published-twice_2.10-sources.jar 
[info] published stable-version-published-twice_2.10 to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/docs/stable-version-published-twice_2.10-javadoc.jar 
[info] published ivy to /Users/jacek/.ivy2/local/default/stable-version-published-twice_2.10/1.0.0/ivys/ivy.xml 
[success] Total time: 0 s, completed Sep 28, 2014 10:46:46 PM 

Wieder keine Warnungen - es funktioniert wie angekündigt.

+1

danke, braucht 'set isSnapshot in ThisBuild: = true' für Multi-Projekt-Build. – virtualeyes

Verwandte Themen