API JavaMail de Maven
Question
J'essaie de mettre à niveau vers le dernier utilitaire Java Mail.
Depuis
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
à (mon intention)
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.5.1</version>
</dependency>
Mais je ne trouve pas 1.5.1 pour l'artefact de courrier,
mais je peux voir
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.1</version>
</dependency>
Ma question est de savoir pourquoi l'identifiant du groupe a changé et si je change l'identifiant du groupe pour 1.5.1, dois-je modifier toute l'implémentation de mon courrier déjà présente (changement de nom du package et tout autre élément) et quelle est la différence entre com.sun.mail
contre javax.mail
?
La solution
Les coordonnées Maven ont changé il y a quelque temps pour être compatibles avec le schéma décrit ici.Les nouvelles coordonnées sont ici.
En bref:
- L'identifiant du groupe
javax.mail
n'est plus utilisé pour l'implémentation. - Il y a un nouvel artefact à
javax.mail:javax.mail-api
.Il fournit lejavax.mail-api.jar
déposer.Celui-ci contient uniquement les définitions de l'API JavaMail, adaptées à la compilation. com.sun.mail:javax.mail
contient lejavax.mail.jar
, le fichier jar d'implémentation de référence JavaMail, comprenant les fournisseurs de protocoles SMTP, IMAP et POP3.
Donc, vous devriez soit utiliser com.sun.mail:javax.mail
pour la compilation et l'empaquetage/le déploiement, ou l'utilisation javax.mail:javax.mail-api
pour la compilation, puis déployez le com.sun.mail:javax.mail
jar le cas échéant (par exemple, votre bibliothèque Tomcat).