我想在我的脚本文件中定义方法,并使用它们为每个项目个体(自定义库)定义构建任务。
ext.buildDockerImage = { imageName ->
def distDir = "${getProject().getBuildDir()}/docker"
copy {
from "${project.getProjectDir()}/src/docker/"
into distDir
}
println 'Build docker image'
}
在我的项目build.gradle
中,我创建了一个任务:
apply plugin: "war"
apply plugin: "jacoco"
dependency {
// all dependencies
}
task buildDocker() {
apply from: "${project.getRootDir()}/docker/scripts.gradle"
buildDockerImage("admin")
}
问题是,每当我运行时gradle build
,此任务也会执行:
$ gradle build -xtest
Build docker image
# rest of build
如您所见,我想要的只是创建一个自定义库来保存方法,用于为每个项目创建任务。但目前我无法在不破坏构建的情况下导入这些方法。方法buildDockerImage
只有在将war文件添加到build目录后才会起作用,所以这个任务只能按需执行,我不想一直被包含在进程中。
我的问题:
- 如何使我的任务仅在我手动执行任务时运行
- 为什么,当我执行构建时,脚本首先执行?