API JavaMail da Maven
Domanda
Sto cercando di eseguire l'aggiornamento alla 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 posta artefatto,
Ma posso vedere
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.1</version>
</dependency>
.
La mia domanda è il motivo per cui il Gruppo ID modificato e se modifico l'ID del gruppo per 1.5.1 Devo modificare tutta la mia implementazione della mia mail che è già presente (cambiamento del nome del pacchetto e qualsiasi altra roba) e qual è la differenza tra com.sun.mail
vs javax.mail
?
Soluzione
Le coordinate di Maven cambiato qualche tempo fa per essere compatibile con lo schema descritto qui .Le nuove coordinate sono qui .
In breve:
- .
- Il Groupid
javax.mail
non è più utilizzato per l'implementazione. - C'è un nuovo artefatto a
javax.mail:javax.mail-api
.Fornisce il filejavax.mail-api.jar
.Questo contiene solo le definizioni API JavaMail, adatti alla compilazione contro. -
com.sun.mail:javax.mail
contiene il filejavax.mail.jar
, il file JAR Implementazione di riferimento JavaMail, compresi i fornitori di protocolli SMTP, IMAP e POP3.
Allora, è necessario utilizzare com.sun.mail:javax.mail
per compilazione e imballaggio / implementazione o utilizzare javax.mail:javax.mail-api
per la compilazione e quindi distribuire il barattolo com.sun.mail:javax.mail
dove appropriato (ad esempio, il Tomcat Lib).