Gradle 自定义任务不运行
我的以下项目结构如下所示:Gradle 自定义任务不运行,gradle,build.gradle,Gradle,Build.gradle,我的以下项目结构如下所示: . ├── build.gradle ├── out.txt ├── Server │ ├── build.gradle │ ├── plugins │ │ └── TestPlugin-0.1.0.zip │ └── src ├── pluginApi │ ├── build │ ├── build.gradle │ └── src ├── plugins │ └── testPlugin │ ├── build │
.
├── build.gradle
├── out.txt
├── Server
│ ├── build.gradle
│ ├── plugins
│ │ └── TestPlugin-0.1.0.zip
│ └── src
├── pluginApi
│ ├── build
│ ├── build.gradle
│ └── src
├── plugins
│ └── testPlugin
│ ├── build
│ │ ├── libs
│ │ │ └── TestPlugin-0.1.0.zip
│ ├── build.gradle
│ └── src
└── settings.gradle
现在,我想在main build.gradle中创建一个gradle任务,它应该执行以下操作:
- 删除服务器/插件的内容
- 为plugins/中的每个gradle项目执行“createZip”任务。例如plugins/testPlugin:createZip
- 将每个插件(plugins//build/libs/.zip)的输出复制到服务器/插件中
task compilePluginsAndCopy() {
delete 'Server/plugins'
mkdir 'Server/plugins'
subprojects.each { p ->
if (p.path.contains("plugins/")) {
p.createZip
doLast {
copy {
from p.path.substring(1) + '/build/libs'
into 'Server/plugins'
}
}
}
}
}
task compilePluginsAndCopy() << {
...
}
当我现在运行此任务时,不会创建zip文件,也不会删除任何内容。
但是,当我在其中一个子项目上运行“createZip”任务时,就会执行任务compilePluginsAndCopy
有人能帮帮我吗?您的任务定义应该如下所示:
task compilePluginsAndCopy() {
delete 'Server/plugins'
mkdir 'Server/plugins'
subprojects.each { p ->
if (p.path.contains("plugins/")) {
p.createZip
doLast {
copy {
from p.path.substring(1) + '/build/libs'
into 'Server/plugins'
}
}
}
}
}
task compilePluginsAndCopy() << {
...
}
如果您的代码不包含在doLast块中,它将在配置阶段执行,这是您在运行不同任务时看到的