来自 Maven 的 JavaMail API
题
我正在尝试升级到最新的 Java Mail 实用程序。
从
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
到(我的意图)
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.5.1</version>
</dependency>
但我没有找到 1.5.1 的邮件神器,
但我可以看到
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.1</version>
</dependency>
我的问题是为什么组 id 发生变化,如果我更改 1.5.1 的组 id,我是否需要更改所有已存在的邮件实现(包名称更改和任何其他内容)以及两者之间的区别是什么 com.sun.mail
与 javax.mail
?
解决方案
Maven 坐标前段时间发生了变化,以与所描述的方案兼容 这里. 。新坐标是 这里.
简而言之:
- 组ID
javax.mail
不再用于实现。 - 有一个新神器位于
javax.mail:javax.mail-api
. 。它提供了javax.mail-api.jar
文件。这仅包含 JavaMail API 定义,适合编译。 com.sun.mail:javax.mail
包含javax.mail.jar
文件,JavaMail 参考实现 jar 文件,包括 SMTP、IMAP 和 POP3 协议提供程序。
所以,你应该使用 com.sun.mail:javax.mail
用于编译和打包/部署,或使用 javax.mail:javax.mail-api
进行编译,然后部署 com.sun.mail:javax.mail
jar 在适当的地方(例如,您的 Tomcat 库)。
不隶属于 StackOverflow