2014-09-27 6 views
14

Mam kilka projektów. Używam publishLocal do aktualizacji lokalnego repozytorium. Czasami pracuję nad kilkoma z nich równolegle i nie chcę ciągle aktualizować numerów wersji.Jak zastąpić lokalne artefakty wersji stabilnej za pomocą funkcji publishLocal?

więc używam publishLocal że działa prawidłowo, ale to wystawia to ostrzeżenie

[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 

więc prawdopodobnie mam użyć czegoś innego. Ale co?

+0

Czy możesz podzielić się czym są projekty zależne? Czy wszystkie należą do pojedynczej jednostki aplikacji? Jaki jest poziom zależności między nimi? Zamiast tego możesz użyć 'ProjectRef'. –

+0

Wszystkie projekty należą do tej samej rodziny aplikacji, ale są podzielone, ponieważ na przykład niektóre wymagają akka, a inne nie. Niektóre będą używane na Androidzie. W bezpośrednim zestawie znajduje się ukierunkowany wykres zależności - tj. Bez cyklicznych zależności. I wszyscy siedzą w repozytorium sam git (nie jestem pewien, czy to robi jakąkolwiek różnicę) i na dysku są w katalogach potomnych tego samego (pustego) rodzica. –

Odpowiedz

21

Wszystko zaczyna się jak a workaround for #1156, który mówi (w #1156):

Zasadniczo, jak z SBT 0.13.2 nie można już opublikować komunikat jeśli już istnieje. Jest to dość niebezpieczne, ponieważ powoduje, że wszystkie uszkodzone pamięci podręczne znajdują się wszędzie. Tylko -SNAPSHOT mogą być ponownie publikowane .

Oznacza to, że publishLocal stabilna wersja nie SNAPSHOT i preferowaną opcją jest nie nadpisać stabilne wersje.

Jako obejście można użyć isSnapshot := true jak potwierdza @jsuereth's comment:

isSnapshot, obecnie tylko oznacza, że ​​budowa może nadpisać poprzednich wartości.

I potwierdził to sam też z następujących build.sbt:

version := "1.0.0" 

Zobacz sesję:

➜ 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 

Jak można zauważyć, projekt jest na 1.0.0 wersji. Oto pierwszy 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 

Wszystko poszło dobrze (zgodnie z oczekiwaniami). Tutaj idzie inny publishLocal (który powinien odnieść sukces z ostrzeżeniami - This usage is deprecated and will be removed in sbt 1.0. - od czasu wydania wersji stabilnej).

> 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 

To poszło zgodnie z oczekiwaniami. Ostrzeżenia tam są.

Ustawmy isSnapshot na true, aby określić wersję stabilną jako zmieniającą.

UWAGA Nie polecam go jednak, ponieważ jakiś inny kod w kompilacji może być powołując się na właściwej isSnapshot być false dla 1.0.0.

> 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/) 

Zróbmy ponownie publishLocal stabilną wersję.

> 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 

Przeszedł bez ostrzeżeń. Spróbujmy ponownie spróbować publishLocal.

> 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 

Znów brak ostrzeżeń - działa tak, jak w reklamie.

+1

dzięki, potrzebuje 'set isSnapshot w ThisBuild: = true' dla wielu kompilacji projektu. – virtualeyes

Powiązane problemy