【问题标题】:JavaMail API from Maven来自 Maven 的 JavaMail API
【发布时间】:2014-02-25 16:39:56
【问题描述】:

我正在尝试升级到最新的 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,我是否需要更改已经存在的所有邮件实现(包名称更改和任何其他内容)以及 @ 之间的区别是什么? 987654324@ 与 javax.mail?

【问题讨论】:

    标签: java maven jakarta-mail


    【解决方案1】:

    Maven 坐标在前一段时间发生了更改,以与here 描述的方案兼容。新坐标为here

    简而言之:

    • 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 库)。

    【讨论】:

    • 如果你关注link above,你会看到javax.mail groupId只有一个artifactId——javax.mail-api,但是那个artifact只对编译你的程序有用,它不是适合运行您的程序。如果你想运行你的程序,你需要 com.sun.mail groupId 和 artifactId javax.mail。
    • 太好了!我正在寻找实现,但 google 和 maven 只会将我指向 javax.mail api...
    • 在这个链接中确实是这样说的,但是如果你在谷歌中搜索(对我来说这是第一个搜索结果)你也可以找到这个:mvnrepository.com/artifact/javax.mail/mail/1.4 然后你把它指向 javaxmail / mail artifact ,这实际上也有效。
    • 那是一个非常旧的版本;不要使用它。
    • 我一直在使用 javax.mail:javax.mail-api (AAARGH) 并搜索“starttls.enable”的所有源代码,但一无所获。所以你的回答解释了我经历的最后一个小时的痛苦。这些天甚至连 Google 也让你失望了。
    猜你喜欢
    • 2021-02-15
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 2015-01-28
    • 2016-01-02
    • 2013-05-22
    • 2013-11-12
    • 1970-01-01
    相关资源
    最近更新 更多