2013-05-03 4 views
18

Ich möchte alle transitiven Abhängigkeiten von einer Abhängigkeit ausschließen. In einigen Orten, die ich gesehen habe vorgeschlagen, die er für diesenWie kann ich in Maven alle transitiven Abhängigkeiten von einer bestimmten Abhängigkeit ausschließen?

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

einen Platzhalter zu verwenden, wenn ich tun, dass ich eine Warnung erhalten:

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

Die Erklärung selbst erfolgreich ist jedoch: Die transitive Abhängigkeiten wirklich sind in meinem Build ignoriert.

Ich habe auch festgestellt, eine alte Feature-Anfrage, die exactly this feature

So, jetzt weiß ich nicht anfordert, wenn dies ein veraltetes Feature ist, dass ich nicht, wenn die Warnung ist falsch, oder die Funktion verwenden, sollte wurde noch nicht vollständig implementiert (ich benutze Maven 3.0.4) ... Weiß jemand mehr darüber?

+0

Maven unterstützt [Abhängigkeitsausschlüsse] (https://maven.apache.org/guides/introduction/introduction-toptional-and-excludes-dependencies.html) als eine kluge Workaround dafür. –

+0

+1 für Platzhalterausschlüsse. Warning/No-warning, meine Android-Instrumentierungstests können schließlich ausgeführt werden (Vorab-Verifizierungsprobleme für alle?). Und der ausdrückliche Ausschluss jeder einzelnen Abhängigkeit ist verrückt. – dev

Antwort

0

Soweit ich weiß, existiert diese Funktion noch nicht. In der Feature-Anforderung, die Sie gesendet haben, können Sie sehen, dass der Status immer noch "Nicht aufgelöst" lautet.

+0

ja, so scheint es nach der Anfrage. aber die Sache, die mich abwarf war, dass das Feature tatsächlich funktioniert, wenn du es benutzt, es wirft nur eine Warnung; Aber es funktioniert :) – Markus

2

Ich hasse Maven Warnungen selbst. Ich habe den Wildcard-Ansatz gesehen, habe ihn aber vermieden. Führen Sie einen MVN-Abhängigkeit: Baum Ziel, entdecken Sie die Top-Level-Abhängigkeiten des betreffenden Artefakts und schließen Sie jedes einzeln aus (hoffentlich ist die Liste nicht so riesig). Dies ist bei weitem der sicherste Weg, dieses Problem anzugehen.

Verwandte Themen