来自 Maven 的 JavaMail API

2022-08-31 23:55:05

我正在尝试升级到最新的Java邮件实用程序。

<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


答案 1

Maven 坐标在一段时间前发生了变化,与此处描述的方案兼容。新坐标在这里

总之:

  • groupId 不再用于实现。javax.mail
  • 在 上有一个新的工件。它提供文件。这仅包含 JavaMail API 定义,适合编译。javax.mail:javax.mail-apijavax.mail-api.jar
  • com.sun.mail:javax.mail包含该文件,JavaMail 引用实现 jar 文件,包括 SMTP、IMAP 和 POP3 协议提供程序。javax.mail.jar

因此,您应该用于编译和打包/部署,或者用于编译,然后在适当的时候部署jar(例如,您的Tomcat lib)。com.sun.mail:javax.mailjavax.mail:javax.mail-apicom.sun.mail:javax.mail


答案 2

推荐