*.class

# Package Files #
*.jar
*.war
*.ear

# interpreter
/interpreter/

# conf file
conf/zeppelin-env.sh
conf/zeppelin-site.xml
conf/keystore
conf/truststore
conf/interpreter.json

# other generated files
spark/dependency-reduced-pom.xml
reports

#webapp
zeppelin-web/node_modules
zeppelin-web/dist
zeppelin-web/.tmp
zeppelin-web/.sass-cache
zeppelin-web/bower_components
**nbproject/
**node/


# project level
/logs/
/run/
/metastore_db/
/*.log
/jobs/
/zan-repo/
/drivers/
/warehouse/
/notebook/
/local-repo/

**/sessions/
**/data/
**/build/
**/testing/

# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
Icon?
ehthumbs.db
Thumbs.db

# eclipse project files
**/.classpath
**/.project
**/.settings/
.project
.settings/

#intelliJ IDEA project files
.idea/
*.iml

# maven target files
target/
**/target/

*~
\#*\#
/.emacs.desktop
/.emacs.desktop.lock
.elc
auto-save-list
tramp
.\#*
*.swp
**/dependency-reduced-pom.xml
