# Maven Konfusion



## JanHH (24. Okt 2022)

Hallo,

kann sein dass die Frage total blöd ist, aber ich blick grad echt nicht durch ;-)

Habe ein Projekt, welches ich mit eclipse bearbeite und mit maven (kommandozeilenaufruf) übersetze+deploy (wildfly). Soweit so gut, funktioniert alles.

Habe dort Apache POI 3.17 eingebunden und will nun updaten auf eine neuere Version, 5.2.3. Dort hat sich eine Funktion geändert.

Wenn ich nun den Eintag in der pom.xml Datei ändere (5.2.3 statt 3.17) dann zeigt Eclipse danach bei dieser Funktion eine Fehlermeldung an; wenn ich das auf die neue Syntax umändere, ist die Fehlermeldung weg.

Wenn ich dann aber den maven Aufruf starte, kommt eine Fehlermeldung - hier wird wieder die alte Syntax-Variante erwartet. Obwohl in der pom.xml ganz klar die neue Version eingetragen ist und ich gar das gesamte .m2-Verzeichnis vorher gelöscht habe!

Wie kann denn sowas sein!?

Danke.


----------



## LimDul (24. Okt 2022)

Welchen Maven aufruf? mach mal ein mvn clean install


----------



## JanHH (24. Okt 2022)

bisher mvn wildfly deploy und clean package. clean install ändert auch nichts, der fehler kommt weiterhin


----------



## KonradN (24. Okt 2022)

Kannst Du den genauen Fehler zeigen? Mit den Details dazu? Was hast Du z.B. genau geändert? Ohne wirkliche Details wird Dir kaum jemand weiterhelfen können.


----------



## JanHH (24. Okt 2022)

Ich hab in der pom.xml die Versionsnummer von 3.17 auf 5.2.3 geändert, Eclipse verhält sich korrekt (was das interaktive Syntax-checken angeht), aber wenn ich maven aufrufe verhält es sich so als würde da noch das alte 3.17 stehen. Viel mehr kann ich da irgendwie gar nicht zu sagen.


----------



## KonradN (24. Okt 2022)

Also erst einmal kurz eine flapsige Antwort:
Ja, dann musst Du da etwas falsch machen. Viel mehr kann ich da irgendwie gar nicht zu sagen.

Du sprichst davon, dass es beim `mvn clean package` Fehler gibt --> Dann gibt es eine Fehlermeldung. Es gibt ein ganzes, großes Logfile, das man schreiben kann. Die ganze Ausgabe von Maven ... wenn man es mit mvn -X startet, dann hat man da sogar richtig viel an Ausgabe.

Und Du hast offensichtlich mehr geändert:


JanHH hat gesagt.:


> dann zeigt Eclipse danach bei dieser Funktion eine Fehlermeldung an; wenn ich das auf die neue Syntax umändere, ist die Fehlermeldung weg.


Da hast Du also noch irgendwo irgendwas geändert. Ob das eine Rolle spielt oder nicht, weiss ich nicht. Denn ich kenne keinen Fehler.

Dann kann man die ganze POM einmal zeigen. Dann kann man da auch einmal schauen, was da nun so drin steht. Nur so als eine mögliche Idee, was noch so interessant sein könnte.


----------



## JanHH (24. Okt 2022)

Hmm. es ist wirklich sehr eigenartig. Der Hinweis mit -X war ganz hilfreich, danke, da kam tatsächlich die Meldung, dass die eine Source-Datei, die ich im Rahmen des Versionsupdates anpassen musste, beanstandet wurde ("uses or overrides a deprecated API."). Allerdings ist da nichts deprecated.

Allerdings - die alte Variante (die mit POI 3.17 lief) ist nun tatsächlich deprecated (die Funktion getCellTypeEnum() ist nun entfernt und durch getCellType() ersetzt). Wenn ich es wieder auf die ALTE Version ändere, bekomme ich beim maven Lauf keine Fehlermeldung, obwohl dieses ja nun tatsächlich deprectated (bzw. falsch - die alte Funktion wurde mittlerweile entfernt) ist. Dafür meckert Eclipse dann allerdings.

Es ist also genau das inverse Verhalten zu dem was zu erwarten wäre.

Wenn ich das Projekt einfach durch Klick auf "clean" bei eclipse builde funktioniert alles. Also einfach so machen? Aber is schon ziemlich verunsichernd.

pom.xml dependencies:


```
<dependencies>
    
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>7.0</version>
            <scope>provided</scope>
        </dependency>
    
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.3.4.Final</version>
            <scope>provided</scope>
        </dependency>
        
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.2.2</version>
            <scope>compile</scope>
        </dependency>
        
        <dependency>
            <groupId>org.primefaces</groupId>
            <artifactId>primefaces</artifactId>
            <version>10.0.0</version>
        </dependency>
        
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>5.2.3</version>
        </dependency>
        
        <dependency>
            <groupId>com.github.librepdf</groupId>
            <artifactId>openpdf</artifactId>
            <version>1.3.27</version>
        </dependency>
        
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3</version>
        </dependency>
        
        <dependency>
            <groupId>org.ghost4j</groupId>
            <artifactId>ghost4j</artifactId>
            <version>1.0.0</version>
        </dependency>
        
    </dependencies>
```


----------



## JanHH (24. Okt 2022)

So, Rätsel wohl gelöst, danke an alle die versucht haben zu helfen. Was auch immer ich angestellt hab, er hat gegen die 3.17er kompiliert. Des Rätsels Lösung - die war als jar in meinem jre/lib/ext-Verzeichnis der java-Installation vorhanden. Gnarf..


----------

