Intellij idea Intellij无法识别javax.mail导入,但项目正在构建中
我在项目中使用javax.mail库。我的项目使用-mvn clean install构建得很好,但是当我尝试调试Intellij IDE时,它显示错误,并且无法识别javax.mail导入。我已经从FILE->Invalidate Caches重新启动了我的IDE并重新启动,仍然没有运气 intellij IDEA未识别这些,并声明未使用的导入。我使用的依赖版本如下:-javax.activation-1.1和javax.mail-1.4 由于项目建设良好,我相信问题在于某些IDE设置。请让我知道这是否可以解决Intellij idea Intellij无法识别javax.mail导入,但项目正在构建中,intellij-idea,jakarta-mail,Intellij Idea,Jakarta Mail,我在项目中使用javax.mail库。我的项目使用-mvn clean install构建得很好,但是当我尝试调试Intellij IDE时,它显示错误,并且无法识别javax.mail导入。我已经从FILE->Invalidate Caches重新启动了我的IDE并重新启动,仍然没有运气 intellij IDEA未识别这些,并声明未使用的导入。我使用的依赖版本如下:-javax.activation-1.1和javax.mail-1.4 由于项目建设良好,我相信问题在于某些IDE设置。请让我
试试这个maven依赖项:
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4</version>
<scope>provided</scope> <!-- add this only if code will run in a java container (i.e. tomcat, etc)-->
</dependency>
- 确保您的“java”源文件夹被标记为源(右键单击它,如果它还不是浅蓝色的,则选择“将目录标记为->源根目录”)
- 确保类包(com.test)名称匹配,即项目窗格中的“src/main/java/com/test/SendMail”和SendMail.java中的“package com.test”
外部库上的圆圈没有任何意义,因为它没有显示任何javax.mail…最新版本是1.6.3,请参阅:并且只有当您要部署到包含JavaMail的JavaEE服务器上时,使用提供的作用域才是正确的。我提供了这个,它工作了。谢谢@egallardo现在代码没有显示任何错误,但当我尝试调试时,它正在运行ClassNotFoundException:javax.mail.MessaginException,是否有任何方法也可以解决此问题?@ZerekSees删除提供的行。听起来矛盾,但问题似乎出在其他地方。
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>jakarta.mail</artifactId>
<version>1.6.3</version>
</dependency>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>message-test</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
</dependencies>
</project>
package com.test;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Properties;
public class SendMail {
public static void main(String[] args) {
sendMail(new Exception("Problem with cable"));
}
public static void sendMail(Exception exception) {
String to = "destination@test.com";
String from = "sender@test.com";
String host = "smtp.test.com";
Properties properties = System.getProperties();
properties.setProperty("mail.smtp.host", host);
Session session = Session.getDefaultInstance(properties);
try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject("Trade-processor instance shutdown!");
message.setText(getExceptionMessage(exception));
Transport.send(message);
} catch (MessagingException mex) {
mex.printStackTrace();
}
}
private static String getExceptionMessage(Exception e) {
StringWriter sw = new StringWriter();
e.printStackTrace(new PrintWriter(sw));
return sw.toString();
}
}