L'API JavaMail de Maven
J'essaie de mettre à niveau vers le dernier utilitaire de messagerie Java.
De
<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 mail,
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'id de groupe a changé et si je change l'id de groupe pour 1.5.1 dois-je changer toute mon implémentation de messagerie qui est déjà présente (changement de nom de paquet et tout autre élément) et quelle est la différence entre com.sun.mail
vs javax.mail
?
1 answers
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:
- Le groupId
javax.mail
n'est plus utilisé pour l'implémentation. - Il y a un nouvel artefact à
javax.mail:javax.mail-api
. Il fournit le fichierjavax.mail-api.jar
. Cela contient uniquement les définitions de l'API JavaMail, adaptées à la compilation. -
com.sun.mail:javax.mail
contient le fichierjavax.mail.jar
, le jar d'implémentation de référence JavaMail fichier, y compris les fournisseurs de protocoles SMTP, IMAP et POP3.
Donc, vous devez soit utiliser com.sun.mail:javax.mail
pour la compilation et l'empaquetage/déploiement, soit utiliser javax.mail:javax.mail-api
pour la compilation, puis déployer le jar com.sun.mail:javax.mail
le cas échéant (par exemple, votre bibliothèque Tomcat).