在Java 9下使用Oracle JavaMail IMAP提供程序构建项目时,我从maven收到编译错误:
... cannot access com.sun.mail.util.ReadableMime
[ERROR] class file for com.sun.mail.util.ReadableMime not found
(ReadableMime是IMAPMessage实现的接口)
它在Java 8下工作。
依赖关系是:
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>imap</artifactId>
<version>1.6.0</version>
</dependency>
javax.mail-api和imap都不包含com.sun.mail.util包,但它似乎不再是JRE的一部分(如果它是正式的)。
所以,我想这是Oracle imap提供程序中的一个错误,它现在在Jigsaw的存在下弹出,或者我错过了什么?
有趣的是,Eclipse编译器并没有抱怨。
感谢EJP:
com.sun.mail:imap适用于com.sun.mail:javax.mail,但不适用于javax.mail:javax.mail-api。
后者不包括com.sun.mail.util包。 com.sun.mail:imap没有声明任何Maven依赖,但事实上它对com.sun.mail:javax.mail有编译依赖性。