以下是测试完成后运行的目标之一,即buil.xml(通过或失败)。此目标失败并出现错误“java.lang.ClassNotFoundException:javax.mail.internet.MimeMessage”。所以我扩展了mail.1.4.jar文件,看到这个类就在那里。接下来我检查了这个jar是否存在于我的setclasspath目标中,它就在那里。第三件事我检查了mail.1.4.jar是否包含在蚂蚁的路径中,它就在那里。现在我无法理解为什么会收到此错误。
<target name="sendmail">
<mail from="[myname@company.com]"
subject="Test Email" mailhost="smpt.gmail.com"
user="myusername" password="mypassword" message="This is a test email">
<to name="receivers name" address="[receiver@gmail.com]" />
</mail>
</target>
答案 0 :(得分:1)
如果Ant提供“java.lang.ClassNotFoundException:javax.mail.internet.MimeMessage”错误,则表示缺少jar。
转到findjar网站:http://www.findjar.com/,通过搜索&#34; javax.mail.internet.MimeMessage&#34;找到相应的jar。你会发现它的mail.jar。
然后从中央Maven存储库下载jar文件:https://mvnrepository.com/artifact/javax.mail/mail,例如,版本mail-1.4.7.jar,并将其放在Ant lib目录中:$ {ANT_HOME} / lib
这应该有效。
答案 1 :(得分:0)
在类路径和相关的传递依赖项中添加mail.jar。
好的,请尝试以下操作,首先在你的ant安装中,$ {ANT_HOME} / lib检查是否存在以下jar,ant-javamail,如果不是:
您可以在此处找到以下内容:http://mvnrepository.com/artifact/org.apache.ant/ant-javamail
根据你的蚂蚁版本挑选正确的。
将此jar复制到ant的lib目录中。并尝试重新运行任务。
让我们知道它是否已解决。
运行命令
ant -f %ANT_HOME%/fetch.xml -Ddest=user -Dm2.url=repo1.maven.org/maven2
答案 2 :(得分:0)
我之前从第一个线程得到了类似的错误。您可能希望将mail.jar和activation.jar下载到您的ant库文件夹下,并在执行构建时确保使用 “ant -lib”,带有lib文件夹的路径。
答案 3 :(得分:0)
如果您通过Groovy使用Ant,则可以通过@Grab
添加必要的库,如下所示:
@GrabConfig(systemClassLoader=true)
@Grapes([
@Grab(group='org.apache.ant', module='ant-javamail', version='1.10.7'),
@Grab(group='com.sun.mail', module='javax.mail', version='1.6.2')
])