为了让你的构建可以自定义任务, 你可以使用 taskdef(通常更容易)
或者 typedef
Ant 任务, 就像你在一个build.xml
文件中一样. 然后,你可以参考内置 Ant 任务去定制 Ant 任务.
例 16.5.使用自定义 Ant 任务
build.gradle
task check << {
ant.taskdef(resource: 'checkstyletask.properties') {
classpath {
fileset(dir: 'libs', includes: '*.jar')
}
}
ant.checkstyle(config: 'checkstyle.xml') {
fileset(dir: 'src')
}
}
你可以使用 Gradle 的依赖管理去组装你自定义任务所需要的 classpath. 要做到这一点, 你需要定义一个自定义配置类路径, 然后添加一些依赖配置.在Section 51.4, “How to declare your dependencies”部分有更详细的说明.
例 16.6.声明类路径的自定义 Ant 任务
build.gradle
configurations {
pmd
}
dependencies {
pmd group: 'pmd', name: 'pmd', version: '4.2.5'
}
要使用 classpath 配置, 使用自定义配置的asPath
属性。
例 16.7.一起使用自定义Ant任务和依赖管理
build.gradle
task check << {
ant.taskdef(name: 'pmd',
classname: 'net.sourceforge.pmd.ant.PMDTask',
classpath: configurations.pmd.asPath)
ant.pmd(shortFilenames: 'true',
failonruleviolation: 'true',
rulesetfiles: file('pmd-rules.xml').toURI().toString()) {
formatter(type: 'text', toConsole: 'true')
fileset(dir: 'src')
}
}