我正在尝试升级到最新的 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.mailjavax.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 库)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top