L'api di JavaMail da Maven


Sto cercando di eseguire l'aggiornamento all'ultima utility Java Mail.

Da

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
</dependency>

A (mia intenzione)

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

Ma non trovo 1.5.1 per l'artefatto della posta,

Ma posso vedere

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

La mia domanda è perché l'id del gruppo è cambiato e se cambio l'ID del gruppo per 1.5.1 devo cambiare tutta la mia implementazione di posta che è già presente (cambio del nome del pacchetto e qualsiasi altra cosa) e qual è la differenza tra com.sun.mail vs javax.mail?

Author: dur, 2014-02-25

1 answers

Le coordinate di Maven sono cambiate qualche tempo fa per essere compatibili con lo schema descritto qui. Le nuove coordinate sono qui .

In breve:

  • Il groupId javax.mail non viene più utilizzato per l'implementazione.
  • C'è un nuovo artefatto in javax.mail:javax.mail-api. Fornisce il file javax.mail-api.jar. Questo contiene solo le definizioni API JavaMail, adatte per la compilazione.
  • com.sun.mail:javax.mail contiene il file javax.mail.jar, il jar di implementazione di riferimento JavaMail file, inclusi i provider di protocollo SMTP, IMAP e POP3.

Quindi, dovresti usare com.sun.mail:javax.mail per la compilazione e il packaging/deploy, o usare javax.mail:javax.mail-api per la compilazione e quindi distribuire il jar com.sun.mail:javax.mail dove appropriato (ad esempio, la tua lib Tomcat).

 65
Author: Bill Shannon, 2017-05-12 22:24:00