使用VsCode编译调试Neo4j源码

文章目录

  • 使用VsCode编译调试Neo4j源码
    • [1 简介](#1 简介)
    • [2 步骤](#2 步骤)
      • [1 下载源码](#1 下载源码)
      • [2 依赖](#2 依赖)
      • [3 构建Neo4j](#3 构建Neo4j)
      • [4 运行](#4 运行)
      • [5 安装VsCode扩展](#5 安装VsCode扩展)
      • [6 **调试**](#6 调试)

使用VsCode编译调试Neo4j源码

1 简介

Neo4j作为领先的图数据库,在存储、查询上都非常值得分析学习。通过调试、日志等方法跟踪代码工作流有助于理解其原理及具体实现。本文旨在帮助想要单步调试Neo4j却不知道怎么搞,或是遇到些问题的朋友。

2 步骤

1 下载源码

Neo4j源码

本文用的5.26版本

2 依赖

按照源码中的README就行,本文是基于Ubuntu

  • 安装JAVA及配置环境
bash 复制代码
apt-get install openjdk-17-jdk -y

# 装完后需要配置一下环境变量
code ~/.bashrc

添加以下两行内容:

复制代码
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin
bash 复制代码
# 保存并关闭文件后,运行以下命令使更改生效
source ~/.bashrc

# 验证安装
java -version
  • 安装Maven及环境配置
    注:使用ubuntu的apt安装的maven版本较低。 需要下载更新的版本:
bash 复制代码
# 下载Maven 3.8.2
wget https://downloads.apache.org/maven/maven-3/3.8.2/binaries/apache-maven-3.8.2-bin.tar.gz

# 解压
tar -xvzf apache-maven-3.8.2-bin.tar.gz -C /opt

# 配置环境变量
code ~/.bashrc

添加以下两行:

复制代码
export MAVEN_HOME=/opt/apache-maven-3.8.2
export PATH=$PATH:$MAVEN_HOME/bin
bash 复制代码
# 保存并关闭文件后,运行以下命令使更改生效
source ~/.bashrc

# 验证安装 
mvn -v

3 构建Neo4j

按照README就行了。我直接执行的以下命令没有遇到任何问题,如果遇到一些问题,可以看一下README这部分的东西

bash 复制代码
mvn clean install -DskipTests -T1C

构建完成后,到packaging/standalone/target目录下解压neo4j-community-5.26.1-SNAPSHOT-unix.tar.gz

bash 复制代码
cd packaging/standalone/target
tar -xvzf neo4j-community-5.26.1-SNAPSHOT-unix.tar.gz

4 运行

解压后,进入解压的目录就可以运行Neo4j了

bash 复制代码
cd neo4j-community-5.26.1-SNAPSHOT
# 运行Neo4j
bin/neo4j-admin server start

# 停止
bin/neo4j-admin server stop

运行后点开网页会发现:

json 复制代码
{
  "errors": [
    {
      "code": "Neo.ClientError.Request.Invalid",
      "message": "Not Found"
    }
  ]
}

这是由于从源码编译运行,缺少neo4j-browser-5.24.0.jar 。我的解决办法是从release的Neo4j docker里面拷贝过来。该文件是在/var/lib/neo4j/lib目录下

5 安装VsCode扩展

在VsCode扩展应用商店中搜索并安装Extension Pack for Java

6 调试

  • 修改Neo4j配置文件
    配置文件都在neo4j-community-5.26.1-SNAPSHOT/conf目录下,打开neo4j.conf添加

    server.jvm.additional=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005

注:如果你是在docker里面开发,并且映射了相应端口,需要把server.default_listen_address=0.0.0.0这一行解注释

修改完配置文件后再运行Neo4j,会有如下输出:

bash 复制代码
Directories in use:
home:         /neo4j/packaging/standalone/target/neo4j-community-5.26.1-SNAPSHOT
config:       /neo4j/packaging/standalone/target/neo4j-community-5.26.1-SNAPSHOT/conf
logs:         /neo4j/packaging/standalone/target/neo4j-community-5.26.1-SNAPSHOT/logs
plugins:      /neo4j/packaging/standalone/target/neo4j-community-5.26.1-SNAPSHOT/plugins
import:       /neo4j/packaging/standalone/target/neo4j-community-5.26.1-SNAPSHOT/import
data:         /neo4j/packaging/standalone/target/neo4j-community-5.26.1-SNAPSHOT/data
certificates: /neo4j/packaging/standalone/target/neo4j-community-5.26.1-SNAPSHOT/certificates
licenses:     /neo4j/packaging/standalone/target/neo4j-community-5.26.1-SNAPSHOT/licenses
run:          /neo4j/packaging/standalone/target/neo4j-community-5.26.1-SNAPSHOT/run
Starting Neo4j.
Listening for transport dt_socket at address: 5005

说明Neo4j正在监听调试端口5005.

  • 修改vscode调试任务配置文件
    打开.vscode目录下的launch.jsonconfigurations中添加:
json 复制代码
{
    "type": "java",
    "name": "Debug Neo4j",
    "request": "attach",
    "hostName": "localhost",
    "port": 5005
}

如果没有.vscode,需要点运行和调试生成。之前安装的插件会帮你导入很多调试配置

  • 开始调试
    使用该配置开始调试,就可以连接进Neo4j调试了
相关推荐
是赵敢敢啊16 小时前
自定义注解@SyncNeo4j实现增删改导入时自动同步数据节点和关系到Neo4j
neo4j
AttackingLin1 天前
VScode Claude Code 插件配置第三方api
ide·vscode·编辑器
码农爱学习1 天前
VSCode的Markdown插件哪个好用
ide·vscode·编辑器
笨鸟先飞,勤能补拙1 天前
密码学深度指南 — SecOps 工程师实战手册
人工智能·vscode·python·安全·github·密码学·visual studio
超级大福宝1 天前
在 VS Code 自带的聊天插件中配置 OpenCode
ide·vscode
2501_915106322 天前
SwiftUI项目创建详解:使用Xcode从零开始创建第一个App项目
ide·vscode·ios·swiftui·个人开发·xcode·敏捷流程
2501_916007472 天前
IDE 是什么?集成开发环境详解与 iOS 开发选型指南
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
2601_960906723 天前
AI研发加速中式及泛亚洲
人工智能·vscode·macos·sublime text·phpstorm
啦啦啦!3 天前
虚拟机如何接入Codex并配置中转站(vscode插件版)
linux·vscode·ubuntu·编辑器
不喝水的鱼儿4 天前
本地部署 260K 上下文 Qwen-3.6-35B-A3B 与 Ornith-1.0-35B 模型及 VSCode Copilot 参数调优记录
ide·vscode·语言模型·copilot·llama