mvn clean install największym błędem w Twoim Mavenowym projekcie

Podczas JAlby 2019 znów spotkałem i porozmawiałem z szefem projektu Maven Robertem Scholte. Skorzystałem z okazji by spytać: jakie są najczęstsze błędy jakie napotykasz w cudzych projektach Mavenowych?

To proste – rzekł – `mvn clean install`

Robert Scholte, JAlba 2019

Pogadaliśmy więcej i sprowadza się to do:

  1. pisanie clean za każdym razem jest nadmiarowe. Czyszczenie było potrzebne w czasach Mavena 2. Dlaczego? Ponieważ były wtyczki, które nie sprzątały po sobie zatem miałeś ich rezultaty z poprzedniej budowy pokazujące Ci już nieprawidłowe wyniki (gorsze) lub uniemożliwiające tworzenie nowych rezultatów (słabe, lecz lepsze, przynajmniej od razu wiedziałeś że coś nie gra). Teraz wtyczki sprzątają po sobie całkiem nieźle, choć mogą być jakieś wyjątki.
  2. w większości przypadków install też jest nadmiarowe, wystarczyłoby Ci verify – czyli odpalenie wszelkich testów, sprawdzeń, upewnienie się że się buduje. Instalacja dodaje fazę installz jej operacjami dyskowymi – wydłużając proces budowy i czekanie na rezultaty budowy/testów, nie wspominając o nadpisywaniu plików na dysku bez potrzeby.

Zatem mvn verifyludki, albo nawet mvn test gdy nie macie testów integracyjnych.

Advertisements

2 Comments

  1. Jakoś tak nie przekonuje mnie to:
    “pisanie clean za każdym razem jest nadmiarowe.”
    jeśli chwile później przyznajesz:
    “Teraz wtyczki sprzątają po sobie całkiem nieźle, choć mogą być jakieś wyjątki.”

    Jeśli mogą być wyjątki i my nie wiemy kiedy się one pojawią to mimo wszystko jednak chyba lepiej odpalić tego clean’a który i tak przecież nic złego nie robi?

    1. Dzięki za wpis. W czasach Mavena 2 takie wtyczki były częste. Teraz żadnej nie znam, ale nie wykluczę istnienia. Ja piszę bez clean i dotąd nie było konieczności by clean się pojawiło.

      ZIB: przepraszam że czekałeś na publikację komcia – mówiłem na konferencji i realizowałem jedno zlecenie dla klienta – czas zleciał błyskawicznie.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s