Czym różni się „mvn clean install” od „mvn install”?


Odpowiedzi:


214

cleanjest własną fazą cyklu życia kompilacji (którą można traktować jako akcję lub zadanie) w Maven. mvn clean installmówi Maven, aby wykonał cleanfazę w każdym module przed uruchomieniem installfazy dla każdego modułu.

Pozwala to wyczyścić wszystkie skompilowane pliki, które masz, upewniając się, że naprawdę kompilujesz każdy moduł od zera.


13
Zawsze myślałem, że zainstaluj, w tym czysty, jako jeden z jego etapów ... dopóki tego nie zobaczę
Junchen Liu

14
@shanyangqu Niestety, nie. cleanjest w osobnym cyklu życia , więc nie jest wywoływany domyślnie.
Władca

47

Maven pozwala określić cele lub fazy cyklu życia w wierszu poleceń (lub w obu).

cleani installsą to dwie różne fazy cyklu życia , z którymi powiązane są różne wykonania wtyczek (domyślnie lub jawnie w pliku pom.xml )

cleanFaza, na konwencji, ma dokonać kompilacji powtarzalne, czyli czyści wszystko, co zostało stworzone przez poprzednie buduje. W większości przypadków robi to poprzez wywołanie clean:clean, które usuwa katalog związany z ${project.build.directory}(zwykle nazywany „docelowym”)


6
„instalacja” nie jest cyklem życia. Jest to faza w domyślnym cyklu życia. Chociaż istnieje „czysty” cykl życia, AFAIK ten parametr określa fazę „czystego” cyklu „czystego”, a nie sam „czysty” cykl życia.
Puce

1
@Puce true, miałem na myśli „fazę”, a nie cykl życia
Sean Patrick Floyd

38

Możesz zadzwonić do więcej niż jednego celu docelowego za pomocą maven. najpierw mvn clean installdzwoni . Musisz wyczyścić ręcznie, ponieważ czyszczenie nie jest standardowym celem docelowym i nie jest wykonywane automatycznie przy każdej instalacji.cleaninstall

cleanusuwa folder docelowy - usuwa wszystkie pliki klas, dokumenty Java, słoiki, raporty i tak dalej. Jeśli tego nie zrobisz clean, maven „zrobi tylko to, co trzeba”, tak jak nie skompiluje klas, gdy odpowiednie pliki źródłowe nie ulegną zmianie (w skrócie).

nazywamy to celem w mrówce i celem w maven


1
Myślę, że w tym kontekście czyszczenie i instalacja to fazy cyklu życia, a nie cele.
JL_SO


4

To samo dotyczy @Andreas_D, dodatkowo, jeśli powiesz, że zaktualizuj Spring z 1 wersji do innej w swoim projekcie bez robienia porządków, skończysz z obydwoma w swoim artefakcie. Wpadłem na to dużo podczas tworzenia Flex z Maven.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.