我遵循这个checks来创建一个任务,如果输入保持不变,它就不会生成代码。
问题是,我不能像doLast一样在hbm2java中调用Ant任务。dependsOn不适合这种情况,因为无论输入条件如何,它总是运行。
有人知道吗?
这是一个例子:
task helloGen {
ext.srcFile = file('src/main/resources/com/bt/nmdb/entities')
ext.destDir = new File(buildDir, 'generated/src/main/java/')
inputs.file srcFile
outputs.dir destDir
doLast {
println "Transforming source file."
hbm2java // <- An Ant task which cannot be called somehow
}
}发布于 2015-10-13 07:54:48
好的。我找到了更好的解决办法。与其调用ant任务,不如在doLast闭包中定义ant任务。
所以..。而不是:
doLast {
hbm2java
} 最好用:
doLast {
ant.taskdef(name: 'hibernateTool',
classname: 'org.hibernate.tool.ant.HibernateToolTask',
classpath: configurations.hibernateTool.asPath) {
}
ant.hibernateTool(destdir: "$buildDir/generated/src/main/java/") {
configuration(propertyFile: "$projectDir/src/test/resources/hibernate.properties") {
fileSet(dir: "$projectDir/src/main/resources/") {
include(name: "**/*.hbm.xml")
}
}
classpath {
pathElement(path: "$projectDir/src/main/resources/")
pathElement(path: "$buildDir/generated/")
}
hbm2java(jdk5: true)
}
} https://stackoverflow.com/questions/32577654
复制相似问题