gpt4 book ai didi

android - doLast gradle任务未运行

转载 作者:行者123 更新时间:2023-12-03 05:08:03 54 4
gpt4 key购买 nike

我有一个依赖于maven-publish插件的自定义任务。在运行maven-publish插件之前,我的自定义任务需要命令行中的一些参数。

为此,我尝试对自定义任务执行doLast闭合,但是发布任务未运行。

 class MyGradlePlguins implements Plugin<Project> {
@Override
void apply(Project project) {
project.getPluginManager().apply("maven-publish")
BuildAndUpload buildAndUpload = project.getTasks().create("BuildAndUpload", BuildAndUpload.class);
project.getTasks().getByName("buildAndUploadTest").doLast {
println "running publish task from the doLast clause"
project.getTasks().getByName("publish").execute() <-- doens't throw error but doesn't run either
}
}
}

我究竟做错了什么?

最佳答案

您不应该从另一个任务 Action (使用task.execute())触发任务的执行:即使Gradle API中提供了此功能,也不应该使用它。请改用任务依赖项(请参阅任务依赖项here的文档)

编辑:从下面的评论中,如果您只想在自定义任务后强制执行publish任务,则:

class MyGradlePlguins implements Plugin<Project> {
@Override
void apply(Project project) {
project.getPluginManager().apply("maven-publish")
BuildAndUpload buildAndUpload = project.getTasks().create("BuildAndUpload", BuildAndUpload.class);

// Make your task 'finalized by' task "publish"
buildAndUpload.finalizedBy project.tasks.getByName('publish')

// You can also have the other way:
// project.tasks.getByPath(':app:publish').dependsOn buildAndUpload
}
}

EDIT2 :从您的最近评论开始:您似乎遇到了与 custom gradle plugin causes: Cannot configure the 'publishing' extension类似的已知问题

一种解决方法是替换:
publishing {
publications {
mavenJava(MavenPublication) {
from components.java

}
}
repositories {
maven {
url "../maven-repo"
}
}
}

带有:
publishing.publications {
mavenJava(MavenPublication) {
from components.java

}
}
publishing.repositories {
maven {
url "../maven-repo"
}
}

关于android - doLast gradle任务未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54146560/

54 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com