2011-01-04 22 views
14

Używamy Maven 3 z IntelliJ dla naszego IDE. Po kompilacji otrzymujemy pakiet materiałów źródłowych Spring 2.0 zawartych w bibliotekach zewnętrznych. Jeśli przejrzę zależności Maven Projekty w Intellij, nie widzę nikogo, kto jest zależny od wiosny 2.0, więc podejrzewam, że to zależy od tego, od czego zależy.Jak dowiedzieć się, dlaczego Maven zawierał słoik?

Moje pytanie brzmi: jak mogę to sprawdzić? Próbowałem zrobić mvn dependency:tree -Dverbose -Dincludes=spring-aop, a nawet -Dincludes=spring, ale nie otrzymałem wyników, gdy pobiegłem z katalogu głównego lub podkatalogu, o którym wiem, że używa sprężyny.

Odpowiedz

12

Wygląda na to, że wzór przekazany do jest niepoprawny.

Z dokumentacji Maven Dependency Plugin, składnia-Dincludes jest zdefiniowany przez StrictPatternIncludesArtifactFilter. Z javadoc z AbstractStrictPatternArtifactFilter z którego to podklasy

Składnia artefakt wzór ma postać :

[groupId]:[artifactId]:[type]:[version]

Gdzie każdy segment wzór jest opcjonalna i obsługuje pełny i częściowych * symboli wieloznacznych . Pusty segment traktowany jest jako niejawny znak wieloznaczny .

Na przykład org.apache.* by dopasować wszystkie artefakty, których grupa id rozpoczął org.apache. i :::*-SNAPSHOT by dopasować wszystkie snapshot artefakty.

Może powinieneś uruchomić mvn dependency:tree bez -Dincludes i zobacz czy pokazuje się na sprężyny 2.0 związane zależność. Ewentualnie określ odpowiedni wzór dla -Dincludes.

9

Format, którego szukasz, jest nieprawidłowy. Spróbuj tego:

mvn dependency:tree -Dverbose -Dincludes=:spring*:: 

(szuka jakiegokolwiek artefaktu z GroupID który rozpoczyna się wiosną)

albo to:

mvn dependency:tree -Dverbose -Dincludes=org.springframework 

(szuka jakiegokolwiek artefaktu z artifactId org.springframework)

+0

Próbowałem za pomocą powyższego polecenia, aby zrozumieć, dlaczego jest dołączony konkretny słoik. Jednakże powyższe polecenie maven wykonuje polecenie i mówi, że kompilacja jest sukcesem, ale nie ma informacji o zależności. – Mahiz

3

Dlaczego nie używać intellij i łatwo to naprawić. Otwórz swój pom.xml, kliknij prawym przyciskiem myszy (wywołaj menu kontekstowe) i wybierz UML> pokaż zależności (jeśli masz włączoną wtyczkę UML). Idea zaznaczy wszystkie zduplikowane zależności i możesz użyć kombinacji ALT + Enter, aby wykluczyć zależności. @ see also: http://blogs.jetbrains.com/idea/2010/05/maven-dependencies-diagram/

Powiązane problemy