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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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就能识别了
人生还有意义。那一定是还在找存在的理由
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?