Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
folgendes Problemchen kurz und knapp erläutert, vielleicht kennt sich ja jemand aus:
v: Maven 3.2.1
Maven deployt bei mir alte Abhängigkeiten obwohl diese aus der POM.xml raus sind.
z.B. habe ich OmniFaces dependency wieder rausgenommen !! Auch aus lokalem Repo !!
Trotzdem deployt Maven omnifaces.jar immer noch mit in mein WAR-Archiv.
Das geht mir auch so bei anderen 'alten' Abhängigkeiten. Ich habe das gesamte lokale Repo gelöscht und neu 'gezogen'.
Nachdem ich clean install ausgeführt habe befanden sich die alten jars wieder im target-archiv und im lokalen Repo in meinem Projekt. Aber die jars der alten Abhängigkeiten waren nicht im lokalen Repo. Wie kommt das? Weiß jemand weiter, oder was ich noch probieren könnte?
Omnifaces ist ja eine Implementierung von JSF wenn ich mich richtig erinnere ...Die Frage ist was Dein Container zur Verfügung stellt ? z.B. Tomcat / Jetty / JBoss / etc. und natürlich prüfen, ob die Abhängigkeit über eine transitive Abhängigkeit reinkommt...dann eventuell ein Exclude reinmachen...
eine Vollständige POM hier zu posten würde helfen, um besser zu sehen wo das Problem ist...
Wenn der Container schon etwas entsprechendes hat, dann muss die Dependency wie folgt definiert werden:
DeltaSpikes sollte schon lange raus sein. Hatte mich nicht dafür entschieden es zu verwenden nach kleinen Tests. Das gleiche gilt auch für andere Abhängigkeiten, welche immernoch im WAR zu finden sind.
Auch im local Maven Repository ist das WAR wie oben hinterlegt.
Ich habe leider keine Ahnung wieso Maven das tut und ob das ein bekanntes Problem ist. Bestimmt habe ich etwas nicht richtig angewendet. Ich bekomm noch Haarausfall vom ewigen Trial&Error
Das bedeutet, dass das project:webApplication-war eine Abhängigkeit auf project:model-jar hat...weiterhin hat das projectrdering-ejb auch eine Abhängigkeit auf project:model-jar aus diesem Grund die Meldung "omitted for duplicate"...
So projectrdering-ejb hat eine Abhängigkeit auf javax.inject:javax.inject aber es kommt nochmal als Abhängigkeit von javax.enterprise:cdi-api und wird dort als "omitted for duplicate" gemeldet...da es ja schon im Baum ist...
Die Regeln wie transitive Abhängigkeiten etc. geregelt sind steht hier: Maven
Ich sehe hier auch einige grundlegende Fehler. Z.B. javax.servlet:servlet-api hat den Scope compile. Sollte aber "provided" haben...(Im Tomcat gibt es dann beim hochfahren eine entsprechende Meldung).
Einige von den Abhängigkeiten "-api" sollten wahrscheinlich auch scope: provided bekommen ist aber leider nicht immer 100%ig da auch einige in API Artefakte Sachen reinpacken die man dann auch anders wo braucht...muß man im Zweifelsfalle probieren...
Weiterhin fällt mir auf, dass Du die Abhängigkeiten im Projekt selbst wie folgt definierst:
Damit wir sofort klar, dass es eine Inter-Module Abhängigkeit ist...macht die POM's lesbarer...
Tritt das Problem mit den Files im Lib Ordner auf der Kommandozeile per
Code:
mvn clean package
auf? Welche Maven Version wird verwendet? Welche maven-war-plugin version wird verwendet ? Am besten wäre ein vollständiges Projekt, dass das Problem reproduziert ? Kannst du das Projekt irgendwie Online stellen ? Oder eventuell limitiert (Bitbucket private repo) ansonsten ist das recht schwer zu sehen wo das Problem ist ....
Das löschen im lokalen Repository hilft nicht die Abhängigkeiten müssen irgendwo drin sein oder mithilfe von anderen Plugins in das WAR reingepackt werden..
Gruß
Karl Heinz Marbaise
Problem gelöst. Habe eine lange Pause gemacht am Projekt. Aber nachdem ich ein paar Stunden rumprobiert habe, fand ich eine Lösung.
Ursache war, dass im Verzeichnis des WEB-Moduls im WEB-INF-Dir ein classes-Dir lag, welches alle alten Klassen beinhaltete. Maven nahm diese Klassen mit in den built. Demnach holte Maven auch alle dazu gehörigen Abhängigkeiten. Verzeichnis wurde gelöscht und das Problem somit behoben.