Logstash 问题记录

gradle.properties

新建gradle.properties文件,配置内容:

LOGSTASH_CORE_PATH=/Users/keung/workspace/developer/logstash/logstash-core

build失败

错误信息

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/keung/workspace/whalegame/logstash-output-gamedata/build.gradle' line: 100

* What went wrong:
A problem occurred configuring root project 'logstash-output-gamedata'.
> 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(java.lang.String), getAt(int), getAt(java.lang.String), head(), putAt(java.lang.String, java.lang.Object), wait()

修复方法dependsOn 的数组增加()。

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

Logstash类找不到

> Task :compileJava FAILED
/Users/keung/workspace/whalegame/logstash-output-gamedata/src/main/java/org/logstashplugins/GameData.java:3: 错误: 程序包co.elastic.logstash.api不存在
import co.elastic.logstash.api.Configuration;

implementation fileTree(dir: LOGSTASH_CORE_PATH, include: "**/logstash-core-?.?.?.jar")
改为指定版本
implementation fileTree(dir: LOGSTASH_CORE_PATH, include: "build/libs/logstash-core-7.10.3.jar")