2012-08-01 28 views
7

Nasze wszystkie projekty mavenkin zbudować na jenkins, a następnie rozmieścić artefakty do repozytorium maven.Jenkins wyłączyć lub wyczyścić pamięć podręczną dla maven buduje

Z jakiegoś powodu wydaje się, że istnieje jakiś rodzaj bufora podręcznego lub opóźnienia aktualizacji podczas budowania projektu, który ma zależności z innymi projektami, które dopiero powstały.

Powiedzmy, że jest błąd w artefaktach A i B zależy od A. Teraz naprawiam błąd lokalnie, aktualizuję zależności w B, uruchamiam B i wszystko w porządku. Zameldowałem się oczywiście. Teraz buduję A na Jenkins, a potem B. Potem otrzymuję nowo zbudowany B i uruchamiam go. Błąd nadal tam jest. Kilka godzin później, jeśli ponownie zbuduję B, to dostanie nowe A i błąd zniknie ..

Musi być więc sposób zmuszenia jenkinsa do użycia nowego A na swoim serwerze. użycie mvn -u lub mvn --update-snapshots nie pomoże. Sprawdza aktualizacje i nie znajduje ..

+0

Czy możesz sprawdzić swój plik Maven settings.xml, jeśli dla repozytorium snapshot jest skonfigurowana '"? Jeśli tak nie jest, wersje SNAPSHOT są pobierane tylko raz dzień ze zdalnego repozytorium http: // maven. apache.org/ref/3.0.4/maven-settings/settings.html#class_snapshots –

Odpowiedz

5

Uważam, że nie ma takiego zachowania buforowania możliwe w Maven/Jenkins, ponieważ wszystkie migawki są budowane lokalnie w tym samym wystąpieniu Jenkins. Nie ma potrzeby stosowania opcji "aktualizacji migawki", ponieważ nie jest ona pobierana z zdalnego repo. Jednak poleciłbym zajrzeć do ustawień repozytorium w Jenkins. W Jenkinsie możemy zmienić używane repozytorium (domyślnie jest ono współużytkowane przez całą maszynę, ale można je zmienić na przestrzeń roboczą lub na executora itd.). W konfiguracji Twojego projektu w Build -> Advanced możesz sprawdzić „Use private Maven repository”, aw Manage Jenkins -> Configure System -> Maven Project Configuration, można wybrać sposób zarządzania Local Maven Repository. mam podejrzenia, zmieniono ją na „Local do Egzekutor”

Jeśli masz jakieś ustawienia, które powodują zbudowanie urządzenia zainstalowane w innym repozytorium że B używa, możesz trafić problem, z którym się mierzyłeś

Powiązane problemy