# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib
*.DS_Store

dist/
*.log
# Test binary, build with `go test -c`
*.test

# Output of the go coverage tool, specifically when used with LiteIDE
*.out
coverage.txt

*.idea
*.iml
target/
classes
dubbo.json

# Gopkg.lock
vendor/

logs/
.vscode/
cache/
log/
coverage.txt

# maven
.classpath
.project
.settings/

# java build
general/dubbo3/api/dubbogo-java/java-client/build/
general/dubbo3/api/dubbogo-java/java-server/build/

# license header
/license-header-checker-linux/
/license-header-checker-linux.zip