2013-05-03 3 views
18

Chcę wykluczyć wszystkie przechodnie zależności z jednej zależności. W niektórych miejscach widziałem to zalecane, aby użyć symbolu wieloznacznego dla tegoW Maven, jak mogę wykluczyć wszystkie przejściowe zależności z konkretnej zależności?

<dependency> 
    <groupId>myParentPackage</groupId> 
    <artifactId>myParentProject</artifactId> 
    <version>1.00.000</version>    
    <exclusions> 
    <exclusion> 
     <groupId>*</groupId> 
     <artifactId>*</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 

Kiedy robię, że dostanę ostrzeżenie:

'dependencies.dependency.exclusions.exclusion.groupId' for myParentPackage:myParentProject:jar with value '*' does not match a valid id pattern. @ line 146, column 30 

Sama deklaracja jest udany choć: W zależności przechodnie są naprawdę ignorowane w mojej kompilacji.

Ja również znalazłem starą prośbę cecha, która żąda exactly this feature

Więc teraz nie wiem, czy jest to przestarzała funkcja, że ​​nie powinno się używać, jeśli ostrzeżenie jest nie tak, albo z funkcji nie został jeszcze całkowicie zaimplementowany (używam Maven 3.0.4) ... Czy ktoś wie o tym więcej?

+0

Maven obsługuje [wyjątki od zależności] (https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html) jako sposób na obejście tego problemu. –

+0

+1 dla wykluczeń z symboli wieloznacznych. Ostrzeżenie/Bez ostrzeżenia, moje testy oprzyrządowania Androida mogą się ostatecznie uruchomić (problemy z wcześniejszą weryfikacją?). A wyraźne wykluczenie każdej indywidualnej zależności jest szalone. – dev

Odpowiedz

0

Co do mojej wiedzy, ta funkcja jeszcze nie istnieje. W wysłanej prośbie o funkcję możesz zobaczyć, że jego status jest nadal "Nierozwiązany".

+0

tak, wydaje się, że zgodnie z prośbą. ale to, co mnie rzuciło, to fakt, że funkcja działa, gdy jej używasz, po prostu ostrzega; ale działa :) – Markus

2

Nienawidzę otrzymywać ostrzeżenia Mavena samemu. Widziałem podejście wieloznaczne, ale go uniknąłem. Uruchom mnożnik mvn dependency: tree, odkryj zależności najwyższego poziomu należące do danego artefaktu i wyklucz każdą z nich indywidualnie (miejmy nadzieję, że lista nie jest tak rozległa). Jest to zdecydowanie najbezpieczniejszy sposób podejścia do tego problemu.