自定义Gradle任务取决于插件

艾克·波斯特尔曼

简介:我想编写一个gradle任务,该任务取决于插件。特别是我想将插件org.hidetake.ssh用于部署任务

我有以下项目结构

build.gradle
settings.gradle
some-modules/
|-- src/...
buildSrc/
|-- src/
|-- |-- main/groovy/package/DeployTask
|-- build.gradle

在我的主要build.gradle中,导入插件并定义Task: build.gradle

plugins {
    id 'idea'
    id 'org.hidetake.ssh' version '2.10.1'
}

...

remotes {
    dev {
        host = findProperty("server.dev.host")
        user = findProperty("server.dev.user")
        identity = file(findProperty("server.dev.identity_file") ?: "${System.properties['user.home']}/.ssh/id_rsa")
    }
}

import org.irrigation.gradle.DeployTask

task deploy(type: DeployTask) {
    description = "Deploys to Server"
}

buildSrc/src/main/package/DeployTask我定义它:

class DeployTask extends DefaultTask {
    @Input
    @Option(option = "env", description = "Configures the environment to be used")
    String environment = "dev";

    @Input
    @Option(option = "branch", description = "Configures the branch which should be deployed")
    String branch = "master";

    @TaskAction
    void deploy() {
        ssh.run {
            session(ssh.remotes[environment]) {
                execute "echo test"
            }
        }
    }

}

我显然收到错误消息:

Execution failed for task ':deploy'.
> Could not get unknown property 'ssh' for task ':deploy' of type org.irrigation.gradle.DeployTask.

问题是,我可以(但不想)build.gradle按如下方式在主程序中编写任务(无错误)

task deploy(type: DeployTask) {
    doLast {
        ssh.run {
            session(ssh.remotes[environment]) {
                execute "echo test"
            }
        }
    }
}
弗朗西斯科·马特奥(Francisco Mateo)

ssh已注册为该项目的扩展:https : //github.com/int128/gradle-ssh-plugin/blob/master/gradle-ssh-plugin/core/src/main/groovy/org/hidetake/gradle/ssh /plugin/SshPlugin.groovy#L20

因此,您需要像这样(未测试)在您的任务中引用扩展名:

@TaskAction
void deploy() {
    doLast {
        getProject().getExtensions().getByType(Service.class).run {

        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在自定义 gradle 插件中,如何添加任务取决于其他插件中定义的任务?

来自分类Dev

Gradle中的自定义任务/插件

来自分类Dev

Gradle中的自定义任务/插件

来自分类Dev

自定义比较器,取决于外部值

来自分类Dev

MediaWiki Wiki自定义页脚(取决于类别)

来自分类Dev

自定义授权取决于用户属性

来自分类Dev

覆盖价格取决于Magento上的自定义选项

来自分类Dev

取决于单元格值的自定义格式

来自分类Dev

自定义 UIView 类约束取决于 ParentView

来自分类Dev

build.gradle中的任务可以取决于插件中的任务吗

来自分类Dev

在哪里可以找到处理目录文件的jaxb gradle插件或自定义任务?

来自分类Dev

Gradle Javadoc自定义任务

来自分类Dev

Gradle Javadoc自定义任务

来自分类Dev

Gradle Protobuf自定义任务

来自分类Dev

intellij运行配置取决于gradle任务

来自分类Dev

在Gradle中的自定义任务中运行任务

来自分类Dev

在自定义任务中执行Gradle构建任务

来自分类Dev

Powershell 运行空间输出的行为取决于返回自定义对象的定义方式

来自分类Dev

从Gradle自定义插件获取gradle.properties文件

来自分类Dev

从自定义任务中调用grunt插件

来自分类Dev

为Zip类型的任务编写自定义插件

来自分类Dev

创建类型为Jar的自定义插件任务

来自分类Dev

Gradle uploadArchives工件插件的名称空间(取决于插件)

来自分类Dev

静默自定义命令取决于CMAKE_VERBOSE_MAKEFILE

来自分类Dev

在约束取决于框架的自定义视图中使用自动布局

来自分类Dev

禁用自定义帖子类型链接,具体取决于分类选项

来自分类Dev

以y_true取决于y_pred的方式自定义Keras的损失函数

来自分类Dev

如何具有取决于单元格中值的自定义数字格式

来自分类Dev

创建取决于UILabel高度的自定义表格视图单元格

Related 相关文章

  1. 1

    在自定义 gradle 插件中,如何添加任务取决于其他插件中定义的任务?

  2. 2

    Gradle中的自定义任务/插件

  3. 3

    Gradle中的自定义任务/插件

  4. 4

    自定义比较器,取决于外部值

  5. 5

    MediaWiki Wiki自定义页脚(取决于类别)

  6. 6

    自定义授权取决于用户属性

  7. 7

    覆盖价格取决于Magento上的自定义选项

  8. 8

    取决于单元格值的自定义格式

  9. 9

    自定义 UIView 类约束取决于 ParentView

  10. 10

    build.gradle中的任务可以取决于插件中的任务吗

  11. 11

    在哪里可以找到处理目录文件的jaxb gradle插件或自定义任务?

  12. 12

    Gradle Javadoc自定义任务

  13. 13

    Gradle Javadoc自定义任务

  14. 14

    Gradle Protobuf自定义任务

  15. 15

    intellij运行配置取决于gradle任务

  16. 16

    在Gradle中的自定义任务中运行任务

  17. 17

    在自定义任务中执行Gradle构建任务

  18. 18

    Powershell 运行空间输出的行为取决于返回自定义对象的定义方式

  19. 19

    从Gradle自定义插件获取gradle.properties文件

  20. 20

    从自定义任务中调用grunt插件

  21. 21

    为Zip类型的任务编写自定义插件

  22. 22

    创建类型为Jar的自定义插件任务

  23. 23

    Gradle uploadArchives工件插件的名称空间(取决于插件)

  24. 24

    静默自定义命令取决于CMAKE_VERBOSE_MAKEFILE

  25. 25

    在约束取决于框架的自定义视图中使用自动布局

  26. 26

    禁用自定义帖子类型链接,具体取决于分类选项

  27. 27

    以y_true取决于y_pred的方式自定义Keras的损失函数

  28. 28

    如何具有取决于单元格中值的自定义数字格式

  29. 29

    创建取决于UILabel高度的自定义表格视图单元格

热门标签

归档