API JavaMail do Maven
Pergunta
Estou tentando atualizar para o utilitário Java Mail mais recente.
De
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
para (minha intenção)
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.5.1</version>
</dependency>
Mas não encontro 1.5.1 para artefato de correio,
mas eu posso ver
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.1</version>
</dependency>
Minha pergunta é por que o ID do grupo mudou e se eu alterar o ID do grupo para 1.5.1, preciso alterar toda a minha implementação de email que já está presente (mudança de nome do pacote e qualquer outra coisa) e qual é a diferença entre com.sun.mail
contra javax.mail
?
Solução
As coordenadas do Maven mudaram há algum tempo para serem compatíveis com o esquema descrito aqui.As novas coordenadas são aqui.
Resumidamente:
- O ID do grupo
javax.mail
não é mais usado para a implementação. - Há um novo artefato em
javax.mail:javax.mail-api
.Ele fornece ojavax.mail-api.jar
arquivo.Contém apenas as definições da API JavaMail, adequadas para compilação. com.sun.mail:javax.mail
contém ojavax.mail.jar
arquivo, o arquivo jar de implementação de referência JavaMail, incluindo os provedores de protocolo SMTP, IMAP e POP3.
Então, você deve usar com.sun.mail:javax.mail
para compilação e empacotamento/implantação ou uso javax.mail:javax.mail-api
para compilação e, em seguida, implantar o com.sun.mail:javax.mail
jar quando apropriado (por exemplo, sua biblioteca do Tomcat).