我写了一个任务(实际上是从互联网复制),它发送电子邮件给给定的电子邮件。但是当我运行它时,我会得到java.lang.ClassNotFoundException: javax.mail.internet.MimeMessage
异常。我已经在依赖项中包括了compile group: 'javax.mail', name: 'javax.mail-api', version: '1.5.1'
,但仍然得到了这个结果。这是任务
apply plugin: 'com.android.application'
class MailSender extends DefaultTask {
@TaskAction
def sendMail(){
def mailParams = [
mailhost: "smtp.gmail.com",
mailport:"465",
subject: "Email Recieved",
messagemimetype: "text/plain",
user: "allaudinqazi@gmail.com",
password:"", //
enableStartTLS:"true",
ssl:"true"
]
ant.mail (mailParams) {
from (address:'allaudinqazi@gmail.com')
to (address:'allaudinqazi@gmail.com')
}
}
}
android {
compileSdkVersion 23
buildToolsVersion '23.0.1'
defaultConfig {
applicationId "uk.org.sportscotland.app"
minSdkVersion 16
targetSdkVersion 21
versionCode 3
versionName "1.1.1"
}
dexOptions {
javaMaxHeapSize "2g"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.2.0'
compile files('libs/org.apache.http.legacy.jar')
compile fileTree(dir: 'libs', include: 'Parse-1.7.0.jar')
compile 'com.koushikdutta.ion:ion:2.+'
compile group: 'javax.mail', name: 'javax.mail-api', version: '1.5.1'
}
ext {
fileName = "SSV01"
}
task copyToDropbox(type: Copy){
from "build/outputs/apk/app-debug.apk"
into "F:/folder/Dropbox/Builds/SS"
rename {
fileName + ".apk"
}
}
task mail(type: MailSender){}
发布于 2016-05-18 01:51:27
您将javax.mail
错误地添加到compile
配置中。因为在构建时需要这样做,所以您需要将它添加到buildscript
依赖项中。
例:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'javax.mail:javax.mail-api:1.5.1'
}
}
更多信息这里
发布于 2016-05-20 05:39:24
它说,读取邮件任务的文档
注意:此任务可能取决于未包含在Ant发行版中的外部库。有关更多信息,请参见“库依赖项”。
我似乎记得ant有点像这样,希望您将jar文件放到%ANT_HOME%/lib中。因此,我认为邮件任务需要由与邮件/激活jars相同的类加载器加载。对我来说,这意味着两种选择:
ant.taskdef
定义另一个带有类路径中所有所需jars的邮件任务(例如mail2
)。这将是我更喜欢的方法。例:
configurations { antMail }
dependencies {
antMail 'ant:ant-javamail:1.6.5'
antMail 'javax.activation:activation:1.1.1'
antMail 'javax.mail:mail:1.4.7'
}
ant.taskdef(
name: 'mail2',
classname: 'org.apache.tools.ant.taskdefs.email.EmailTask',
classpath: configurations.antMail.asPath
)
ant.mail2(mailParams) { ... }
发布于 2017-02-03 06:50:45
groupId似乎随着时间的推移而改变(javax >> javax.mail):您需要替换为:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'javax.mail:javax.mail-api:1.5.6'
}
}
https://stackoverflow.com/questions/37293194
复制相似问题