首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在doLast中调用Ant任务

在doLast中调用Ant任务
EN

Stack Overflow用户
提问于 2015-09-15 04:19:28
回答 1查看 276关注 0票数 0

我遵循这个checks来创建一个任务,如果输入保持不变,它就不会生成代码。

问题是,我不能像doLast一样在hbm2java中调用Ant任务。dependsOn不适合这种情况,因为无论输入条件如何,它总是运行。

有人知道吗?

这是一个例子:

代码语言:javascript
复制
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
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-13 07:54:48

好的。我找到了更好的解决办法。与其调用ant任务,不如在doLast闭包中定义ant任务。

所以..。而不是:

代码语言:javascript
复制
doLast {
  hbm2java
} 

最好用:

代码语言:javascript
复制
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)
    }
  } 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32577654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档