Java Mail API von Maven
Frage
Ich versuche, auf das neueste Java-Mail-Dienstprogramm zu aktualisieren.
Von
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
zu (meiner Absicht)
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.5.1</version>
</dependency>
Aber ich finde 1.5.1 für Mail-Artefakte nicht,
aber ich kann sehen
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.1</version>
</dependency>
Meine Frage ist, warum sich die Gruppen-ID geändert hat und wenn ich die Gruppen-ID für 1.5.1 ändere, muss ich meine gesamte bereits vorhandene Mail-Implementierung ändern (Änderung des Paketnamens und andere Dinge) und was ist der Unterschied zwischen com.sun.mail
vs javax.mail
?
Lösung
Die Maven-Koordinaten haben sich vor einiger Zeit geändert, um mit dem beschriebenen Schema kompatibel zu sein hier.Die neuen Koordinaten sind hier.
Kurz:
- Die Gruppen-ID
javax.mail
wird für die Implementierung nicht mehr verwendet. - Es gibt ein neues Artefakt bei
javax.mail:javax.mail-api
.Es bietet diejavax.mail-api.jar
Datei.Dies enthält nur die JavaMail-API-Definitionen, die zum Kompilieren geeignet sind. com.sun.mail:javax.mail
enthält diejavax.mail.jar
datei, die JAR-Datei für die JavaMail-Referenzimplementierung, einschließlich der SMTP-, IMAP- und POP3-Protokollanbieter.
Sie sollten also entweder verwenden com.sun.mail:javax.mail
zum Kompilieren und Verpacken / Bereitstellen oder Verwenden javax.mail:javax.mail-api
zum Kompilieren und dann Bereitstellen der com.sun.mail:javax.mail
jar gegebenenfalls (z. B. Ihre Tomcat-Bibliothek).