来自Maven的JavaMail API

Kum*_*mar 40 java jakarta-mail maven

我正在尝试升级到最新的Java Mail实用程序.

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

到(我的意图)

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.5.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

但我找不到1.5.1的邮件工件,

但我可以看到

<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.5.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么组ID发生了变化,如果我更改了1.5.1的组ID,我是否需要更改已经存在的所有邮件实现(包名更改和其他任何内容)以及com.sun.mailvs 之间的区别是javax.mail什么?

Bil*_*non 77

之前改变的Maven坐标与此处描述的方案兼容.新的坐标在这里.

简而言之:

  • groupId 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 lib).

  • 我一直在使用 javax.mail:javax.mail-api (AAARGH) 并搜索“starttls.enable”的所有源代码,但一无所获。所以你的回答解释了我经历的最后一个小时的痛苦。这些天,即使是谷歌也让你失望。 (2认同)