当尝试在groovy文件中创建AntBuidler
对象时,我得到的异常
java.lang.NoClassDefFoundError: org/apache/tools/ant/BuildException
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2493)
at java.lang.Class.getDeclaredConstructors(Class.java:1901)
.....
at at features.step_definitions.RewardEventsGeneration.GetEventXML(RewardEventsGeneration.groovy:40)
在✽.然后应该生成updateLoyaltyInfo事件
我已经将相关的jar添加到我的lib文件夹中,然后将下面的代码放在build.gradle
下
repositories {
mavenCentral()
flatDir {
dirs 'lib'
}
}
我的代码如下
def GetEventXML (userId, eventTypeIn)
{
def Host = "10.77.69.14"
def UserName = "system"
def Password = "password"
def Path = "/temp"
def eventTypeToLookFor = "eventType="$eventTypeIn""
def resultAsString = "" as String
def commandToRun = "grep -lH $userId $Path/*.xml | xargs grep -l '$eventTypeToLookFor' | cut -d: -f1"
def antEventCheck = new AntBuilder(); ********** Error line ******************
antEventCheck.sshexec( trust:'true',
host:Host,
username:UserName,
password:Password,
command:commandToRun,
verbose:'true',
timeout:'10000',
failonerror:'false',
outputproperty:'eventCheckResult');
resultAsString = antEventCheck.properties.eventCheckResult.toString()
return resultAsString
}
build.gradle
dependencies {
ext.groovyVersion = "2.0.4"
ext.cucumberJvmVersion = "1.1.5"
ext.httpclientVersion = "4.2.1"
cucumberRuntime files("${jar.archivePath}")
compile ('com.jcraft:jsch:0.1.49')
compile('com.github.groovy-wslite:groovy-wslite:0.8.0')
groovy("org.codehaus.groovy:groovy-all:${groovyVersion}")
compile("org.apache.httpcomponents:httpmime:4.1.2")
compile("org.codehaus.groovy.modules.http-builder:http-builder:0.5.2") {
exclude group: "org.codehaus.groovy", module: "groovy"
}
compile("net.sf.json-lib:json-lib:2.4:jdk15")
compile("javax.mail:mail:1.4.5")
compile("org.apache.httpcomponents:httpclient:${httpclientVersion}")
compile("org.codehaus.geb:geb-core:0.7.2") {
exclude group: "org.codehaus.geb", module: "geb-implicit-assertions"
}
drivers.each { driver ->
testCompile "org.seleniumhq.selenium:selenium-$driver-driver:$version.selenium"
}
compile("org.seleniumhq.selenium:selenium-support:2.25.0")
compile("log4j:log4j:1.2.17")
testCompile("junit:junit:4.10")
testCompile("info.cukes:cucumber-groovy:${cucumberJvmVersion}")
testCompile("info.cukes:cucumber-junit:${cucumberJvmVersion}")
}
感谢您的评论
以下是的完美工作
根据Peter的回答,添加flatDir
是不够的。需要添加相同的依赖项以及
repositories {
mavenCentral()
flatDir {
dirs 'lib'
}
}
dependencies {
compile("ant:ant:1.7.0")
}
感谢Peter