Maven2 WAR Plugin doppelte Dependencies

Status
Nicht offen für weitere Antworten.

ueltschisa

Mitglied
Hallo Zusammen

Ich bin auf ein merkwürdiges Maven2 Problem gestossen.

Folgendes:

Ich habe ein Mavne WAR Projekt. In diesem Projekt habe ich einige Apache Commons und Struts dependencies definiert. Wenn ich das "package" Target ausführe habe ich in meinem WAR einige Commons Jar's dopelt, in verschiedenen Versionen.

So sieht mein POM aus:

Code:
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>infplat</groupId>
    <artifactId>infplat-web</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>infplat-web Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.8</version>
        </dependency>

        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.0.4</version>
        </dependency>

        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.0</version>
        </dependency>

        <dependency>
            <groupId>commons-validator</groupId>
            <artifactId>commons-validator</artifactId>
            <version>1.1.4</version>
        </dependency>

        <dependency>
            <groupId>pfstruts</groupId>
            <artifactId>pfstruts-core</artifactId>
            <version>1.1.1</version>
        </dependency>

        <dependency>
            <groupId>pfstruts</groupId>
            <artifactId>pfstruts-web</artifactId>
            <version>1.1.1</version>
        </dependency>
        
        <dependency>
            <groupId>aplat.ts</groupId>
            <artifactId>AplatUtil</artifactId>
            <version>2.11</version>
        </dependency>

        <dependency>
            <groupId>struts</groupId>
            <artifactId>struts</artifactId>
            <version>1.2.8</version>
        </dependency>

        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>session</artifactId>
            <version>1.0.1</version>
        </dependency>

        <dependency>
            <groupId>quartz</groupId>
            <artifactId>quartz</artifactId>
            <version>1.5.2</version>
        </dependency>

        <dependency>
            <groupId>org.apache.avalon.framework</groupId>
            <artifactId>avalon-framework-impl</artifactId>
            <version>4.3.1</version>
        </dependency>

        <dependency>
            <groupId>fop</groupId>
            <artifactId>fop</artifactId>
            <version>0.20.5</version>
        </dependency>

        <dependency>
            <groupId>net.sourceforge.jexcelapi</groupId>
            <artifactId>jxl</artifactId>
            <version>2.6.3</version>
        </dependency>

        <dependency>
            <groupId>jenkov</groupId>
            <artifactId>jenkov-prizetags</artifactId>
            <version>3.4.0</version>
        </dependency>

        <dependency>
            <groupId>com.lowagie</groupId>
            <artifactId>itext</artifactId>
            <version>2.0.8</version>
        </dependency>


        

        <dependency>
            <groupId>infplat</groupId>
            <artifactId>infplat-server</artifactId>
            
            <version>1.0-SNAPSHOT</version>
            <type>ejb</type>
            <scope>provided</scope>
        </dependency>
        
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.1</version>
            <scope>provided</scope>
        </dependency>
        
        <dependency>
            <groupId>javax.ejb</groupId>
            <artifactId>ejb</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>
        
        <dependency>
            <groupId>com.bea.wls</groupId>
            <artifactId>weblogic</artifactId>
            <version>10.3</version>
            <scope>provided</scope>
        </dependency>
       
    </dependencies>
    <build>
        <finalName>infplat-web</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Um mal ein Beispiel zu nennen. In meinem Target WAR ist die Bibliothek commons-beanutils unter der Version 1.6.1 und 1.7 vorhanden.


Mit "mvn dependency:tree -Dverbose=true" bekam ich folgenden output:


[INFO] [dependency:tree]
[INFO] infplat:infplat-web:war:1.0-SNAPSHOT
[INFO] +- log4j:log4j:jar:1.2.8:compile
[INFO] +- commons-logging:commons-logging:jar:1.0.4:compile
[INFO] +- commons-lang:commons-lang:jar:2.0:compile
[INFO] +- commons-validator:commons-validator:jar:1.1.4:compile
[INFO] +- pfstruts:pfstruts-core:jar:1.1.1:compile
[INFO] | +- skaringa:skaringa:jar:r1p8:compile
[INFO] | +- (log4j:log4j:jar:1.2.13:compile - omitted for conflict with 1.2.8)
[INFO] | +- (commons-lang:commons-lang:jar:2.1:compile - omitted for conflict with 2.0)
[INFO] | +- (commons-logging:commons-logging:jar:1.0.4:compile - omitted for duplicate)
[INFO] | +- commons-digester:commons-digester:jar:1.7:compile
[INFO] | | +- (commons-beanutils:commons-beanutils:jar:1.6:compile - omitted for conflict with 1.6.1)
[INFO] | | +- (commons-logging:commons-logging:jar:1.0:compile - omitted for conflict with 1.0.4)
[INFO] | | +- (commons-collections:commons-collections:jar:2.1:compile - omitted for conflict with 3.1)
[INFO] | | \- (xml-apis:xml-apis:jar:1.0.b2:compile - omitted for duplicate)
[INFO] | +- commons-beanutils:commons-beanutils:jar:1.6.1:compile
[INFO] | | +- (commons-logging:commons-logging:jar:1.0:compile - omitted for conflict with 1.0.4)
[INFO] | | \- (commons-collections:commons-collections:jar:2.0:compile - omitted for conflict with 2.1)
[INFO] | +- (commons-validator:commons-validator:jar:1.1.4:compile - omitted for duplicate)
[INFO] | \- commons-collections:commons-collections:jar:3.1:compile
[INFO] +- pfstruts:pfstruts-web:jar:1.1.1:compile
[INFO] | +- (pfstruts:pfstruts-core:jar:1.1.1:compile - omitted for duplicate)
[INFO] | +- (struts:struts:jar:1.2.8:compile - omitted for duplicate)
[INFO] | +- struts:struts-el:jar:1.2.8:compile
[INFO] | +- taglibs:standard:jar:1.0.6:compile
[INFO] | +- javax.servlet:jstl:jar:1.1.2:compile
[INFO] | +- (log4j:log4j:jar:1.2.13:compile - omitted for conflict with 1.2.8)
[INFO] | +- (commons-lang:commons-lang:jar:2.1:compile - omitted for conflict with 2.0)
[INFO] | +- (commons-logging:commons-logging:jar:1.0.4:compile - omitted for duplicate)
[INFO] | +- (commons-digester:commons-digester:jar:1.7:compile - omitted for duplicate)
[INFO] | +- (commons-beanutils:commons-beanutils:jar:1.6.1:compile - omitted for duplicate)
[INFO] | +- (commons-validator:commons-validator:jar:1.1.4:compile - omitted for duplicate)
[INFO] | \- (commons-collections:commons-collections:jar:3.1:compile - omitted for duplicate)
[INFO] +- aplat.ts:AplatUtil:jar:2.11:compile
[INFO] +- struts:struts:jar:1.2.8:compile
[INFO] | +- (commons-beanutils:commons-beanutils:jar:1.7.0:compile - omitted for conflict with 1.6.1)
[INFO] | +- (commons-digester:commons-digester:jar:1.6:compile - omitted for conflict with 1.7)
[INFO] | +- commons-fileupload:commons-fileupload:jar:1.0:compile
[INFO] | +- (commons-logging:commons-logging:jar:1.0.4:compile - omitted for duplicate)
[INFO] | +- (commons-validator:commons-validator:jar:1.1.4:compile - omitted for duplicate)
[INFO] | +- oro:eek:ro:jar:2.0.7:compile
[INFO] | +- antlr:antlr:jar:2.7.2:compile
[INFO] | \- xalan:xalan:jar:2.5.1:compile
[INFO] +- taglibs:session:jar:1.0.1:compile
[INFO] +- quartz:quartz:jar:1.5.2:compile
[INFO] | \- (commons-logging:commons-logging:jar:1.0.4:compile - omitted for duplicate)
[INFO] +- org.apache.avalon.framework:avalon-framework-impl:jar:4.3.1:compile
[INFO] | \- org.apache.avalon.framework:avalon-framework-api:jar:4.3.1:compile
[INFO] +- fop:fop:jar:0.20.5:compile
[INFO] | +- batik:batik-1.5-fop:jar:0.20-5:compile
[INFO] | +- xml-apis:xml-apis:jar:1.0.b2:compile
[INFO] | +- (xalan:xalan:jar:2.4.1:compile - omitted for conflict with 2.5.1)
[INFO] | +- xerces:xercesImpl:jar:2.2.1:compile
[INFO] | \- avalon-framework:avalon-framework:jar:4.0:compile
[INFO] +- net.sourceforge.jexcelapi:jxl:jar:2.6.3:compile
[INFO] | \- (log4j:log4j:jar:1.2.14:compile - omitted for conflict with 1.2.8)
[INFO] +- jenkov:jenkov-prizetags:jar:3.4.0:compile
[INFO] +- com.lowagie:itext:jar:2.0.8:compile
[INFO] | +- bouncycastle:bcmail-jdk14:jar:138:compile
[INFO] | \- bouncycastle:bcprov-jdk14:jar:138:compile
[INFO] +- infplat:infplat-server:ejb:1.0-SNAPSHOT:provided
[INFO] | +- (log4j:log4j:jar:1.2.8:provided - omitted for duplicate)
[INFO] | +- (commons-logging:commons-logging:jar:1.0.4:provided - omitted for duplicate)
[INFO] | +- (quartz:quartz:jar:1.5.2:provided - omitted for duplicate)
[INFO] | +- org.hibernate:hibernate:jar:3.1rc2:provided
[INFO] | | +- asm:asm:jar:1.5.3:provided
[INFO] | | +- cglib:cglib:jar:2.1_2:provided
[INFO] | | | \- (asm:asm:jar:1.5.3:provided - omitted for duplicate)
[INFO] | | +- (commons-collections:commons-collections:jar:2.1.1:provided - omitted for conflict with 3.1)
[INFO] | | +- (commons-logging:commons-logging:jar:1.0.4:provided - omitted for duplicate)
[INFO] | | +- dom4j:dom4j:jar:1.6.1:provided
[INFO] | | +- ehcache:ehcache:jar:1.1:provided
[INFO] | | | \- (commons-logging:commons-logging:jar:1.0.4:provided - omitted for duplicate)
[INFO] | | +- org.hibernate:antlr:jar:2.7.5H3:provided
[INFO] | | \- javax.transaction:jta:jar:1.0.1B:provided
[INFO] | +- (struts:struts:jar:1.2.8:provided - omitted for duplicate)
[INFO] | +- aplat.ts:AplatAlarming:jar:2.10:provided
[INFO] | \- servicedesk:servicedesk:jar:1.0:provided
[INFO] +- javax.servlet:servlet-api:jar:2.5:provided
[INFO] +- javax.servlet.jsp:jsp-api:jar:2.1:provided
[INFO] +- javax.ejb:ejb:jar:2.0:provided
[INFO] \- com.bea.wls:weblogic:jar:10.3:provided

Die Version 1.7 von commons-beanutils wird eigentlich korrekt ausgelassen, da die Version 1.6.1 höher im Tree definiert ist. Das sieht man auch wenn ich "mvn dependency:list" ausgebe.

[INFO] [dependency:list]
[INFO]
[INFO] The following files have been resolved:
[INFO] antlr:antlr:jar:2.7.2:compile
[INFO] aplat.ts:AplatAlarming:jar:2.10:provided
[INFO] aplat.ts:AplatUtil:jar:2.11:compile
[INFO] asm:asm:jar:1.5.3:provided
[INFO] avalon-framework:avalon-framework:jar:4.0:compile
[INFO] batik:batik-1.5-fop:jar:0.20-5:compile
[INFO] bouncycastle:bcmail-jdk14:jar:138:compile
[INFO] bouncycastle:bcprov-jdk14:jar:138:compile
[INFO] cglib:cglib:jar:2.1_2:provided
[INFO] com.bea.wls:weblogic:jar:10.3:provided
[INFO] com.lowagie:itext:jar:2.0.8:compile
[INFO] commons-beanutils:commons-beanutils:jar:1.6.1:compile
[INFO] commons-collections:commons-collections:jar:3.1:compile
[INFO] commons-digester:commons-digester:jar:1.7:compile
[INFO] commons-fileupload:commons-fileupload:jar:1.0:compile
[INFO] commons-lang:commons-lang:jar:2.0:compile
[INFO] commons-logging:commons-logging:jar:1.0.4:compile
[INFO] commons-validator:commons-validator:jar:1.1.4:compile
[INFO] dom4j:dom4j:jar:1.6.1:provided
[INFO] ehcache:ehcache:jar:1.1:provided
[INFO] fop:fop:jar:0.20.5:compile
[INFO] infplat:infplat-server:ejb:1.0-SNAPSHOT:provided
[INFO] javax.ejb:ejb:jar:2.0:provided
[INFO] javax.servlet:jstl:jar:1.1.2:compile
[INFO] javax.servlet:servlet-api:jar:2.5:provided
[INFO] javax.servlet.jsp:jsp-api:jar:2.1:provided
[INFO] javax.transaction:jta:jar:1.0.1B:provided
[INFO] jenkov:jenkov-prizetags:jar:3.4.0:compile
[INFO] log4j:log4j:jar:1.2.8:compile
[INFO] net.sourceforge.jexcelapi:jxl:jar:2.6.3:compile
[INFO] org.apache.avalon.framework:avalon-framework-api:jar:4.3.1:compile
[INFO] org.apache.avalon.framework:avalon-framework-impl:jar:4.3.1:compile
[INFO] org.hibernate:antlr:jar:2.7.5H3:provided
[INFO] org.hibernate:hibernate:jar:3.1rc2:provided
[INFO] oro:eek:ro:jar:2.0.7:compile
[INFO] pfstruts:pfstruts-core:jar:1.1.1:compile
[INFO] pfstruts:pfstruts-web:jar:1.1.1:compile
[INFO] quartz:quartz:jar:1.5.2:compile
[INFO] servicedesk:servicedesk:jar:1.0:provided
[INFO] skaringa:skaringa:jar:r1p8:compile
[INFO] struts:struts:jar:1.2.8:compile
[INFO] struts:struts-el:jar:1.2.8:compile
[INFO] taglibs:session:jar:1.0.1:compile
[INFO] taglibs:standard:jar:1.0.6:compile
[INFO] xalan:xalan:jar:2.5.1:compile
[INFO] xerces:xercesImpl:jar:2.2.1:compile
[INFO] xml-apis:xml-apis:jar:1.0.b2:compile


Eigentlich kann Maven die Dependency konfilikte korrekt auflösen. Nur das WAR Plugin kopiert mir jedoch alle verfügbaren JAr's in das /WEB-INF/lib Verzeichnis.

Gibt es eine Möglichkeit dieses Problem zu beheben oder muss ich auf exlusions bei den Dependencies zurückgreiffen?

mfg

ueltschisa
 
M

maki

Gast
>> Gibt es eine Möglichkeit dieses Problem zu beheben oder muss ich auf exlusions bei den Dependencies zurückgreiffen?

Die Exclusions sind DIE Lösung des Problems.

Die Übeltäter findest du auch einfach in der generierten Projektseite unter Project Information -> Dependencies -> Project Dependency Graph -> Dependency Tree oder aber unter Project Information -> Dependency Convergence, letzteres zeigt dir Konflikte direkt an.
 

ueltschisa

Mitglied
maki hat gesagt.:
>> Gibt es eine Möglichkeit dieses Problem zu beheben oder muss ich auf exlusions bei den Dependencies zurückgreiffen?

Die Exclusions sind DIE Lösung des Problems.

Die Übeltäter findest du auch einfach in der generierten Projektseite unter Project Information -> Dependencies -> Project Dependency Graph -> Dependency Tree oder aber unter Project Information -> Dependency Convergence, letzteres zeigt dir Konflikte direkt an.

Hallo

Was ich nicht verstehe ist, wieso ich mit dependency:list eine korrekte Liste der Dependencies erhalte, im WEB-INF/lib allerdings falsche JAR's sind. Sollte das WAR-Plugin nicht die Dependencies verwenden, welche beim Kompilieren verwendet wurden?

grz
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A [maven2] Goals Projektabhängig auswählen Tools - Maven, Gradle, Ant & mehr 4
R [Maven2] immer Build failed für Projekt Tools - Maven, Gradle, Ant & mehr 10
RaoulDuke Maven2 - Anfängerprobleme Tools - Maven, Gradle, Ant & mehr 9
P [Maven2] Globale Properties Tools - Maven, Gradle, Ant & mehr 5
P [Maven2] Deploy auf Artifactory mit LDAP Authentication Tools - Maven, Gradle, Ant & mehr 10
P [Maven2] Projectdoku direkt auf Webserver deployen Tools - Maven, Gradle, Ant & mehr 7
M Maven2 Axis2 Tools - Maven, Gradle, Ant & mehr 2
T [MAVEN2] Wo Saple-code zur Lib platzieren? Tools - Maven, Gradle, Ant & mehr 9
P [Maven2] Wie Blacklists löschen? Tools - Maven, Gradle, Ant & mehr 8
P [Maven2] Wie kann man das "Updating Indexes" verhindern? Tools - Maven, Gradle, Ant & mehr 4
M Maven2 - Ant execution einmalig ausführen Tools - Maven, Gradle, Ant & mehr 8
byte Maven2: Test und Prod Builds Tools - Maven, Gradle, Ant & mehr 11
K Maven2 inherited docs nachladen Tools - Maven, Gradle, Ant & mehr 4
P Maven2 - wie mache ich externe Jar Dateien zu Artifacts? Tools - Maven, Gradle, Ant & mehr 15
N Maven2 Projekt unter Hudson mit SVN Repository erstellen Tools - Maven, Gradle, Ant & mehr 4
H Maven2 -> Nachladen der Dependencies Tools - Maven, Gradle, Ant & mehr 4
J Anfängerfragen zu maven2 Tools - Maven, Gradle, Ant & mehr 2
H Maven build.plugins.plugin.version fehlt Tools - Maven, Gradle, Ant & mehr 0
F Maven JAR Plugin Probleme Tools - Maven, Gradle, Ant & mehr 4
von Spotz Gradle: Warum wird das Plugin nicht geladen? Tools - Maven, Gradle, Ant & mehr 4
J Gradle signing Plugin Tools - Maven, Gradle, Ant & mehr 0
H Maven maven-source-plugin is missing Tools - Maven, Gradle, Ant & mehr 5
H Jenkins aktulles Checkstyle Plugin Tools - Maven, Gradle, Ant & mehr 2
LimDul Maven Maven Surefire Plugin - Warnings upgrade Tools - Maven, Gradle, Ant & mehr 2
H Jenkins - maven-jar-plugin - kein jar-file Tools - Maven, Gradle, Ant & mehr 38
H Maven Anfängerproblem - No plugin found for prefix 'archetype' in the current project and in the plugin groups Tools - Maven, Gradle, Ant & mehr 25
C while Schleife in Plugin stoppt nicht Tools - Maven, Gradle, Ant & mehr 23
D [ERLEDIGT] Probleme mit Authorization in Nexus und mvn deploy plugin Tools - Maven, Gradle, Ant & mehr 1
D [Maven Pluginentwicklung] - Plugin das nur auf Parent pom läuft Tools - Maven, Gradle, Ant & mehr 0
S Maven buildnumber-maven-plugin / Formatproblem mit timestamp Tools - Maven, Gradle, Ant & mehr 17
D [Maven] neuerdings "No plugin found for prefix ..." errors Tools - Maven, Gradle, Ant & mehr 7
HaukeG Maven Suche nach Ideen für Realisierung eines eigenen Plugin Tools - Maven, Gradle, Ant & mehr 3
H Maven Tycho [ERROR] Failed to execute goal org.eclipse.tycho:tycho-packaging-plugin:0.14.1:validate-vers Tools - Maven, Gradle, Ant & mehr 8
L Maven Unable to download maven-copy-plugin Tools - Maven, Gradle, Ant & mehr 10
Chris81T Maven Hilfe bei EAR packaging mit maven-ear-plugin Tools - Maven, Gradle, Ant & mehr 1
maestr0 Maven Plugin Entwicklungs Buch für Einsteiger Tools - Maven, Gradle, Ant & mehr 8
D [maven] problem mit konfiguration von cargo plugin Tools - Maven, Gradle, Ant & mehr 4
D [Maven] problem mit plugin - es fehlen "dubug informationen" Tools - Maven, Gradle, Ant & mehr 8
S Maven pom.xml, Error: Plugin execution not covered by lifecycle configuration Tools - Maven, Gradle, Ant & mehr 3
E Maven maven-jaxb2-plugin proxy Tools - Maven, Gradle, Ant & mehr 4
K MAVEN Plugin erzeugen Tools - Maven, Gradle, Ant & mehr 7
C Buckminster + plugin tests Tools - Maven, Gradle, Ant & mehr 3
B Maven Shared plugin konfiguration ? Tools - Maven, Gradle, Ant & mehr 3
D gwt-maven-plugin und Eclipse Tools - Maven, Gradle, Ant & mehr 1
B Buckminster: Plugin Version in Java source File einfügen Tools - Maven, Gradle, Ant & mehr 4
B Maven build-helper-maven-plugin mit Eclipse Tools - Maven, Gradle, Ant & mehr 3
D Maven Install Plugin: Einzelne Datei installen ? Tools - Maven, Gradle, Ant & mehr 16
M eigenes Plugin erstellen Maven Tools - Maven, Gradle, Ant & mehr 4
S Maven Profiles - maven-exec-plugin Tools - Maven, Gradle, Ant & mehr 4
S Maven Webstart Plugin Tools - Maven, Gradle, Ant & mehr 7
P Maven Release Plugin - überschreiben der POM verhindern? Tools - Maven, Gradle, Ant & mehr 5
T Failed to configure plugin parameters Tools - Maven, Gradle, Ant & mehr 8
J Maven Assembly-Plugin und Dependencies Tools - Maven, Gradle, Ant & mehr 4
M maven-jaxb-plugin Tools - Maven, Gradle, Ant & mehr 1
Z Java-Plugin-Einstellung bei Internet-Explorer Tools - Maven, Gradle, Ant & mehr 1
G Applet braucht eine bestimmte Plugin-Version Tools - Maven, Gradle, Ant & mehr 11
C Java Plugin ??? Tools - Maven, Gradle, Ant & mehr 4
K IE + Sun PlugIn + JAR + Zugriff per file:/ geht nicht mehr Tools - Maven, Gradle, Ant & mehr 2
S "Doppelte Anmeldung" bei Java-Applets Tools - Maven, Gradle, Ant & mehr 2

Ähnliche Java Themen

Neue Themen


Oben