gradle構建java編寫的logstash插件錯誤No signature of method: org.gradle.api.internal.tasks.DefaultTaskDependency


[root@VM_63_147_centos logstash-input-java_input_example]# ./gradlew gem
Starting a Gradle Daemon (subsequent builds will be faster)

FAILURE: Build failed with an exception.

* Where:
Build file '/data/logstash-input-java_input_example/build.gradle' line: 101

* What went wrong:
A problem occurred configuring root project 'logstash-input-java_input_example'.
> Could not create task ':gem'.
   > No signature of method: org.gradle.api.internal.tasks.DefaultTaskDependency$TaskDependencySet.getAt() is applicable for argument types: (ArrayList) values: [[task ':downloadAndInstallJRuby', task ':removeObsoleteJars', ...]]
     Possible solutions: getAt(int), getAt(java.lang.String), getAt(java.lang.String), head(), putAt(java.lang.String, java.lang.Object), wait()

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 12s

官網教程:https://www.elastic.co/guide/en/logstash/current/java-input-plugin.html

官網下載的logstash 最新版源碼:https://github.com/elastic/logstash/tree/7.10

構建logstash源碼:

gradlew assemble

查看是否有:$LS_HOME\logstash-core\build\libs\logstash-core-7.10.1.jar

編寫Logstash Java input代碼

下載官方demo:logstash input example:https://github.com/logstash-plugins/logstash-input-java_input_example

指定LOGSTASH_CORE_PATH
下載下來demo后,在項目根目錄創建gradle.properties文件,

添加一行數據: LOGSTASH_CORE_PATH=<執行gradlew assemble 后logstash編譯出來的核心jar包>/logstash-core

gradlew gem 

在此處出現錯誤:No signature of method: org.gradle.api.internal

編輯 build.gradle 

tasks.register("gem"){
    dependsOn [downloadAndInstallJRuby, removeObsoleteJars, vendor, generateRubySupportFiles]
    doLast {
        buildGem(projectDir, buildDir, pluginInfo.pluginFullName() + ".gemspec")
    }
}

################上面修改為########################
tasks.register("gem"){
    dependsOn ([downloadAndInstallJRuby, removeObsoleteJars, vendor, generateRubySupportFiles])
    doLast {
        buildGem(projectDir, buildDir, pluginInfo.pluginFullName() + ".gemspec")
    }
}  

這樣gradle就能識別了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM