2013-06-25 8 views
6

Przepraszam, że mogę zapytać ponownie. Daj mi znać, jeśli mam to prawo?Zależności Mavena a zarządzanie zależnościami dla wielu projektów

Mamy nadrzędną pompę i wiele modułów. Teraz, jeśli wszystkie projekty podrzędne chcą dziedziczyć te same pliki jar (na przykład wiosnę), mogę umieścić je w nadrzędnym projekcie pom i nie muszę uwzględniać ich w pliku pom dziecko.

A jeśli dodam zależności w macierzystym pom, to nie są one uwzględnione we wszystkich projektach podrzędnych, ale mogę dołączyć te, których potrzebuję (na przykład test), dodając je bez potrzeby określania wersji .

Czy to prawda, czy jestem całkowicie wyłączony? Mam nadzieję, że jestem jasny na moim q.

Wszystko, czego potrzebuję, to gigantyczna zabawka dla rodziców z wszystkimi zależnościami. Dzieci powinny automatycznie uzyskać niektóre wspólne zależności i te, których potrzebuje każde dziecko.

Dzięki

Harish

+0

możliwe duplikat [różnic między dependencymanagement i zależnościami w maven] (http://stackoverflow.com/questions/2619598/differences-between-dependencymanagement-and-dependencies-in-maven) – user902383

Odpowiedz

16

W dependencyManagement zadeklarować wersje zależności, wykluczenia i inne rzeczy, które pozwalają zarządzać nimi w miejscu (na przykład pom nadrzędnej) dla wielu projektów.

W zależnościach zadeklarowane jest rzeczywiste użycie/potrzeba zależności, a jeśli zależność jest zarządzana w pom-rodzicu, można to zrobić bez korzystania z wersji i będzie ona dziedziczona, a zatem będzie spójna dla wszystkich zastosowań w dalszej części rodzic pom.

Ta sama logika dotyczy wtyczki i wtyczek, a przy okazji także konfiguracji wtyczki.

+0

Dziękuję bardzo za odpowiedź. Tak więc utworzę w macierzystym pom z wersjami i wykluczeniami. Następnie muszę dodać w macierzystym pom, które muszą zostać odziedziczone przez wszystkie dzieci, a następnie stworzyć w dzieciach dla tych, które same potrzebują. Zależności utworzone w nie będą dziedziczone przez żaden z projektów. Czy to prawda? – Harry

+0

Nadal niezbyt jasne: Podrzędny pom w Podaję listę wszystkich zależności z wykluczeniami, wersją, itd. Następnie pod w rodzicu wymieniłem pewne zależności, które byłyby używane dla wszystkich projektów (np.). Więc inne zależności pod nie zostaną włączone do dzieci, prawda? – Harry

+0

Nie dodawaj zależności w obiekcie nadrzędnym. Po prostu dodaj je tam, gdzie są rzeczywistymi zależnościami. DepMgt zawsze będzie dziedziczony. Jeśli naprawdę potrzebujesz zarządzać grupą dep, możesz użyć zakresu importu, ale to staje się bardziej skomplikowane niż to konieczne. –