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
?
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 filejavax.mail-api.jar
. Questo contiene solo le definizioni API JavaMail, adatte per la compilazione. -
com.sun.mail:javax.mail
contiene il filejavax.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).