web-dev-qa-db-fra.com

API JavaMail de Maven

J'essaie de mettre à niveau vers le dernier Java Mail Utility.

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 de messagerie,

mais je peux voir

<dependency>
    <groupId>com.Sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.5.1</version>
</dependency>

Ma question est 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 package et tout autre truc) et quelle est la différence entre com.Sun.mail contre javax.mail?

40
Kumar

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 javax.mail-api.jar fichier. Il contient uniquement les définitions de l'API JavaMail, adaptées à la compilation.
  • com.Sun.mail:javax.mail contient le javax.mail.jar, le fichier jar d'implémentation de référence JavaMail, y compris les fournisseurs de protocole SMTP, IMAP et POP3.

Donc, vous devez soit utiliser com.Sun.mail:javax.mail pour la compilation et l'empaquetage/déploiement, ou utilisez javax.mail:javax.mail-api pour la compilation, puis déployez le com.Sun.mail:javax.mail le cas échéant (par exemple, votre bibliothèque Tomcat).

75
Bill Shannon