2009-06-09 15 views
41

Czy są jakieś wcześniejsze wtyczki Mavena lub polecenia aktualizujące zależności w POM? Przykład: (jeśli to było w moim POM)Aktualizacje aktualizacji Maven w POM

<dependency> 
    <groupId>commons-lang</groupId> 
    <artifactId>commons-lang</artifactId> 
    <version>2.3</version> 
</dependency> 

Czy istnieje komenda lub wtyczki mogę uruchomić, aby ją zaktualizować do uzależnienia:

<dependency> 
    <groupId>commons-lang</groupId> 
    <artifactId>commons-lang</artifactId> 
    <version>2.4</version> 
</dependency> 
+2

byłbym w pełni szczęśliwy, jeśli wtyczki po prostu sprawdzić dostępność aktualizacji i informuje mnie o nich.To samo sprawdzenie nowych wersji wtyczek również byłoby zadowalające. – Huxi

+1

Myślałem, że może to być jeden z celów Mojo, który zbuduję. – javamonkey79

Odpowiedz

50

Spróbuj maven-versions-plugin, w szczególności versions:use-latest-versions cel.

+3

Robi to, czego żądał plakat, chociaż uważam, że use-latest-releases jest lepszy w większości przypadków. Ale jest to zdecydowanie plugin do użycia. –

+5

Dang, teraz, gdy już to zbudowałem! Myślę, że jak mówi przysłowie: "nie wynajduj ponownie kół, chyba że chcesz dowiedzieć się dużo o kołach". :) Dzięki! – javamonkey79

+0

Yup - Brakowało mi używania najnowszych wersji. Dzięki, Zac. –

1

Nie istnieje nie jest. I bądź szczęśliwy, że nie ma. W jaki sposób takie narzędzie wiedziałoby, jak uaktualnić swoje zależności?

W przypadku ewentualnych pęknięć między małymi wersjami, byłaby to katastrofa, która czeka, aby się wydarzyć.


Ale zawsze możesz write your own Mojo za to.

  • uzyskać najnowszą wersję uzależnienia od Maven repozytorium
  • porównać z wersją z pom.xml
  • przepisać pom.xml
  • prowadzony mvn test
  • ?
  • Zysk!
+0

Doszedłem do wniosku, że to jest to, do czego by doszło - szukałem projektu Mojo i tak, dzięki. – javamonkey79

+0

Zawsze dobrze jest to usłyszeć. Pamiętaj, aby opublikować łącze, jeśli zdecydujesz się na przejście w tryb open source. –

+1

To mogło być prawdą tylko raz, ale już nie jest (@Robert: sugerujesz, by sprecyzować swoją odpowiedź?). –

4

można użyć dependencyManagement w pom nadrzędnej:

<dependencyManagement> 
     <dependencies> 
      <dependency> 
       <groupId>commons-lang</groupId> 
       <artifactId>commons-lang</artifactId> 
       <version>2.4</version> 
      </dependency> 
     </dependencies> 
</dependencyManagement> 

ten sposób, trzeba zmienić wersję tylko raz w POM dominującej

+1

jest to o wiele bardziej pożądane niż posiadanie pewnych narzędzi do aktualizacji narzędzi w sposób, który możesz kontrolować lub nie. Gwarantujesz także, że wszystkie dzieci będą używały określonej wersji. –

+2

@MikePone zależy od przypadku użycia - są one poprawne, tak jak w przypadku pom pom, które musi zawsze używać najnowszych wydań własnych artefaktów, co jest powszechną potrzebą. Ogólnie rzecz biorąc, masz rację. – eis

24

Wolę używać mvn versions:display-dependency-updates; generuje to raport, który zależności można uaktualnić, ale pozwala samodzielnie modyfikować POM. Dostępna jest również wersja wyświetlająca polecenia plug-in-a o aktualizacji.

+1

Bardzo pomocna! Dzięki ... – kazanaki

+1

Link nie działa – FDinoff

+1

Działa u mnie! Z jakiegoś powodu link zawsze prowadzi mnie do strony domowej Mojo, a ja wkleję link tutaj: http://www.mojohaus.org/versions-maven-plugin/display-dependency-updates-mojo.html – Liuting

2

Osobiście uważam, że powinien istnieć dodatkowy parametr w maven, który umożliwiłby dodanie do pom.xml.

patrz post w http://maven.40175.n5.nabble.com/Is-there-any-maven-plugin-to-add-dependency-to-existing-pom-xml-td2839092.html#a5772853

Tutaj można dodać następujące do pliku pom.xml:

<project> 
    ... 
    <build> 
    ... 
    <plugins> 
     ... 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>versions-maven-plugin</artifactId> 
     <version>2.1</version> 
     </plugin> 
     ... 
    </plugins> 
    ... 
    </build> 
    ... 
</project> 

...

Następnie zapasową pliku pom.xml pośrednictwem wersji komenda set:

mvn versions:set -DnewVersion=9.9.9 

Uruchom najnowszą wersję Jony:

mvn versions:use-latest-versions 

i Diff pom.xml pliki, pom.xml i pom.xml.versionsBackup

Powiązane problemy