Gradle HTTP 插件

Gradle HTTP Plugin

我需要在 gradle 构建中使用 HTTP post 上传文件。 我找到了可以达成交易的 HTTPPlugin。我做了一个简单的构建,但它给了我错误:

Caused by: groovy.lang.MissingPropertyException: Could not get unknown 
property 'HttpTask' for root project 'sample-app' of type 
org.gradle.api.Project.

build.gradle

plugins {
    id "io.github.http-builder-ng.http-plugin" version "0.1.1"
}

task notify(type:HttpTask){
    config {
        request.uri = 'http://something.com'
    }
    post {
        request.uri.path = '/notify'
        request.body = [event: 'activated']
        response.success {
            println 'The event notification was successful'
        }
    }
}

似乎gradle 找不到 HTTPTask。知道我错过了什么吗?

错误“Could not get unknown 属性 'HttpTask' for root project”可以通过在声明时指定 HttpTask 类型的全限定名来修复你的任务:

task notify(type: io.github.httpbuilderng.http.HttpTask){
    config {
        request.uri = 'http://something.com'
    }
    post {
        request.uri.path = '/notify'
        request.body = [event: 'activated']
        response.success {
            println 'The event notification was successful'
        }
    }        
}

最好是这个插件声明一个 HttpTask.class 类型的扩展名称 "HttpTask" 这样我们就可以直接使用 "HttpTask" 而无需完全限定名称,而不必导入此类型我们的脚本。这就是其他插件的工作方式(例如 nebula ospakage 插件,任务 "Rpm")。

此插件项目的文档也应更新以提供工作示例 (https://github.com/http-builder-ng/gradle-http-plugin)

尝试使用任务的完全限定名称:

plugins {
    id "io.github.http-builder-ng.http-plugin" version "0.1.1"
}

task notify(type: io.github.httpbuilderng.http.HttpTask){
    config {
        request.uri = 'http://something.com'
    }
    post {
        request.uri.path = '/notify'
        request.body = [event: 'activated']
        response.success {
            println 'The event notification was successful'
        }
    }
}

或在您的脚本中导入 HttpTask :

import io.github.httpbuilderng.http.HttpTask

plugins {
    id "io.github.http-builder-ng.http-plugin" version "0.1.1"
}

task notify(type:HttpTask){
// ...