Lyz*_*yze 5 gradle build.gradle
我的以下项目结构如下所示:
\n\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 out.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 Server\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 plugins\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 TestPlugin-0.1.0.zip\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 pluginApi\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 plugins\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 testPlugin\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 libs\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 TestPlugin-0.1.0.zip\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 build.gradle\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 settings.gradle\nRun Code Online (Sandbox Code Playgroud)\n\n现在我想在主 build.gradle 中创建一个 gradle 任务,它应该执行类似的操作:
\n\n我设法编写了一个像这样的简单任务:
\n\ntask compilePluginsAndCopy() {\n delete \'Server/plugins\'\n mkdir \'Server/plugins\'\n\n subprojects.each { p ->\n if (p.path.contains("plugins/")) {\n\n p.createZip\n\n doLast {\n copy {\n from p.path.substring(1) + \'/build/libs\'\n into \'Server/plugins\'\n }\n }\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n当我现在运行此任务时,不会创建 zip 文件,也不会删除任何内容。\n但是,当我在其中一个子项目上运行“createZip”任务时,任务compilePluginsAndCopy 将被执行。
\n\n有人可以帮我吗?
\n您的任务定义应如下所示:
task compilePluginsAndCopy() << {
...
}
Run Code Online (Sandbox Code Playgroud)
请注意<<.
<<是 的简写doLast。执行此操作的非速记方法是:
task compilePluginsAndCopy() {
doLast {
...
}
}
Run Code Online (Sandbox Code Playgroud)
如果您的代码不包含在 doLast 块中,它将在配置阶段执行,这就是您运行不同任务时所看到的。
| 归档时间: |
|
| 查看次数: |
5970 次 |
| 最近记录: |