在构建中使用自定义Ant任务

为了让你的构建可以自定义任务, 你可以使用 taskdef(通常更容易) 或者 typedef Ant 任务, 就像你在一个build.xml文件中一样. 然后,你可以参考内置 Ant 任务去定制 Ant 任务.

例 16.5.使用自定义 Ant 任务

build.gradle

  1. task check << {
  2. ant.taskdef(resource: 'checkstyletask.properties') {
  3. classpath {
  4. fileset(dir: 'libs', includes: '*.jar')
  5. }
  6. }
  7. ant.checkstyle(config: 'checkstyle.xml') {
  8. fileset(dir: 'src')
  9. }
  10. }

你可以使用 Gradle 的依赖管理去组装你自定义任务所需要的 classpath. 要做到这一点, 你需要定义一个自定义配置类路径, 然后添加一些依赖配置.在Section 51.4, “How to declare your dependencies”部分有更详细的说明.

例 16.6.声明类路径的自定义 Ant 任务

build.gradle

  1. configurations {
  2. pmd
  3. }
  4. dependencies {
  5. pmd group: 'pmd', name: 'pmd', version: '4.2.5'
  6. }

要使用 classpath 配置, 使用自定义配置的asPath属性。

例 16.7.一起使用自定义Ant任务和依赖管理

build.gradle

  1. task check << {
  2. ant.taskdef(name: 'pmd',
  3. classname: 'net.sourceforge.pmd.ant.PMDTask',
  4. classpath: configurations.pmd.asPath)
  5. ant.pmd(shortFilenames: 'true',
  6. failonruleviolation: 'true',
  7. rulesetfiles: file('pmd-rules.xml').toURI().toString()) {
  8. formatter(type: 'text', toConsole: 'true')
  9. fileset(dir: 'src')
  10. }
  11. }