Maven Ungewollte "Teil"-Dependency entfernen

Kababär

Top Contributor
Hi,

ich sitze gerade an einem Dependency-Problem fest und komme nicht weiter.
Das Problem ist, dass eine Dependency von mir eine Xuggler-Version mit einbezieht. Allerdings will ich eine andere Xuggler-Version verwenden, die nicht so sehr eingeschränkt ist.
Jetzt hätte ich ganz gerne, dass ich bei der Dependency sagen kann: "Hey, downloade bitte alle Jars außer der Xuggler-Jar. Die ist doof und ich will lieber meine eigene Jar benutzen".

Im Dependency-tree sieht das so aus:

+- org.openimaj:faces:jar:1.3.5:compile
| +- org.openimaj:image-local-features:jar:1.3.5:compile
| +- org.openimaj:eek:bject-detection:jar:1.3.5:compile
| | +- xpp3:xpp3_min:jar:1.1.4c:compile
| | \- xmlpull:xmlpull:jar:1.1.3.1:compile
| +- org.openimaj:FaceTracker:jar:1.3.5:compile
| | +- org.openimaj:core-video-capture:jar:1.3.5:compile
| | \- org.openimaj:xuggle-video:jar:1.3.5:compile
| | \- xuggle:xuggle-xuggler-lgpl:jar:5.5-20140728:compile <---- die blöde Jar
| | +- commons-cli:commons-cli:jar:1.1:compile
| | +- ch.qos.logback:logback-core:jar:1.0.0:runtime
| | \- ch.qos.logback:logback-classic:jar:1.0.0:runtime
....usw.
\- xuggle:xuggle-xuggler:jar:5.4:compile <---- meine Jar

Wenn ich die ganze Dependency entferne, kriege ich leider circa 400 Fehlermeldungen, weil Klassen und so fehlen. Ich kenne mich leider mit Maven nicht so richtig aus..
Geht das so, wie ich mir das vorstelle?
 

Kababär

Top Contributor
Ich habe es gelöst, indem ich innerhalb der dependency die nicht gewollten jars einfach exkludiere:

Code:
</dependency>

        <dependency>
            <artifactId>faces</artifactId>
            <groupId>org.openimaj</groupId>
            <version>1.3.5</version>
            <scope>compile</scope>
            <exclusions>
                <exclusion>
                    <groupId>xuggle</groupId>
                    <artifactId>xuggle-xuggler-lgpl</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.openimaj</groupId>
                    <artifactId>xuggle-video</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
 

mrBrown

Super-Moderator
Mitarbeiter
Das ist die Lösung dafür.

Pass allerdings auf, dass du dir nicht irgendwelche Lizenzprobleme einhandelst, die excluded'e Version scheint ja eine extra LGPL-Version zu sein...
 

Ähnliche Java Themen

Neue Themen


Oben