2017-09-06 56 views
6

Niedawno widzieliśmy błąd, w którym Maven próbuje odzyskać SNAPSHOT, który nie istnieje. Jak widać, numer kompilacji (cokolwiek to jest, ponieważ to nie jest nasz numer kompilacji), pasuje, ale znacznik czasu nie powoduje, że kompilacja się nie powiedzie. Zdarza się to raz na każde 20 kompilacji.Czy mogę zmienić znacznik czasu migawki na numer kompilacji?

Jest to Nexus: In nexus

I to jest to, co się dzieje podczas kompilacji:

Articats not found

Jak widać stara się odzyskać relations-models:jar:1.1-20170901.134955-278 który nie istnieje, natomiast 20170901.134954-278 robi. Zwróć uwagę na przesunięcie o jedną sekundę.

  1. Czy ktoś jeszcze ma ten problem? A obejście?
  2. Zastanawiam się nad zastąpieniem znacznika czasu numerem kompilacji, ale nie mogę znaleźć sposobu na wpłynięcie przyrostków migawek. Czy ktoś wie, jak to zrobić?

Dotyczy to (dużego) projektu wielomodułowego, w którym jest to jeden z podmodułów.

Wtyczka Jar jest skonfigurowany jak to

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib/</classpathPrefix> <mainClass>me.magnet.redirect.RedirectService</mainClass> <useUniqueVersions>false</useUniqueVersions> <classpathLayoutType>custom</classpathLayoutType <customClasspathLayout>$${artifact.artifactId}-$${artifact.baseVersion}.$${artifact.extension}</customClasspathLayout> </manifest> </archive> </configuration> </plugin>

a plugin deploy tak:

Build biegnie równolegle zbyt.

+0

Czy maven-metadata.xml pokazuje poprawną wersję? – Ferrybig

+2

Sufiks jest standardem Maven. Prawdopodobnie jest to zły pomysł, aby go zmienić (jeśli w ogóle jest to możliwe). Pokaż nam swój pom, abyśmy mogli dowiedzieć się, dlaczego to przesunięcie występuje. –

+0

Czy ten problem występuje w wielomodułowej kompilacji, czy dzieje się to przy kompilacji generującej artefakty, podczas gdy inna kompilacja go zużywa? Czy te kompilacje działają równolegle? – khmarbaise

Odpowiedz

1

Maven spróbuje pobrać najnowszą wersję migawki wymienioną w pliku maven-metadata.xml w repozytorium.

Wygląda na to, że ta wersja znajduje się na liście maven-metadata.xml, ale plik w rzeczywistości nie istnieje. Może to być prawdopodobnie spowodowane niekompletnym przesłaniem kompilacji; jeśli np. wiele modułów próbuje użyć dokładnie tego samego numeru wersji spanshot, ale niektóre z nich nie zostały skompilowane i nie zostały przesłane do repozytorium. (także, być może niepoprawna konfiguracja maven pom.xml)