2011-01-20 21 views
6

Powiedzmy, ArtifactA zależy ArtifactB i ArtifactC zależy również od ArtifactBMaven: Jak znaleźć artefakty, które zależą od innego artefaktu

Rozumiem, że „plugin zależność mvn” może pomóc listy zależności projektu/artefaktu .

Ale co powiesz na odwrót? Jeśli chcę znaleźć listę projektów/artefaktów zależnych od danego artefaktu? Z powyższego przykładu, biorąc pod uwagę ArtifactB, chciałbym otrzymać ArtifactA i ArtifactC

Jak mogę to osiągnąć?

+0

Możliwy duplikat [Jak wygenerować wykres zależności między wszystkimi modułami projektu Maven?] (Https://stackoverflow.com/questions/4084669/how-to-generate-a-graph-of -zależności-pomiędzy-wszystkimi modułami-maven-projektu) –

Odpowiedz

5

Maven może działać tylko w bieżącym projekcie, więc może wykrywać tylko zależności między bieżącym projektem (lub podmodułami) a innymi projektami (w tym podmodułami bieżącego projektu).

Więc co można zrobić, to szukać konkretnych submodułów zależności od innych submodules:

     mycompany:parent 
        /    \ 
     mycompany:child1  mycompany:child2 
      /    /    \ 
    mycompany:grandchild1 mycompany:grandchild2 mycompany:grandchild3 

W ten sposób można znaleźć wszystkie podprojekty, które mają współzależności do grandchild3:

mvn validate -pl child2/grandchild3 -amd 

to będzie działać faza validate we wszystkich projektach w ramach bieżącego projektu, które zależą od wersji grandchild3.

2

To wcale nie jest łatwe. Jedną z opcji jest użycie programu m2eclipse, który ma funkcję o nazwie Wyszukanie klasy. W widoku repozytoriów, kliknij prawym przyciskiem myszy repozytorium i włącz pełny indeks. Następnie przejdź> Otwórz typ z maven - tam możesz przeglądać wszystkie artefakty dostępne na podstawie konwencji pakietu Java.

Inną opcją jest opracowanie własnego narzędzia opartego na przykład na JarAnalyzer, który zaakceptuje plik JAR i przeszuka lokalne repozytorium maven, szukając najbardziej odpowiednich artefaktów, które spełniają importowane pakiety/klasy z JAR.

+0

w rzeczywistości jest to łatwe dzięki 'mvn validate', zobacz @Sean Patrick Floyd's answer – tsayen

Powiązane problemy