java - 如何开始调试 Github maven 项目
问题描述
我在调试从 Github 克隆的代码方面非常陌生。但是,到目前为止,我已经完成了以下工作:
- 将 repo 克隆到我的本地机器(git clone)以及使用“sourcetree”软件。
- 构建代码(mvn clean install)
- 能够在 IDE 中导入 maven 项目(Ecliplse,InteliiJ)
- 构建完成后,我可以在构建后创建的 target/bin 目录中启动应用程序(例如:start.sh)
- 成功登录到应用程序的 UI
问题: - 现在,目前我不确定应用程序的主类文件是什么,以及我应该从哪里以及哪个 .java 文件附加断点 - 一旦附加了断点,我将如何在遍历 UI 时对其进行调试。
有人可以给我一个指针。提前致谢!例如:我正在“Apache/NiFi-Registry”项目中测试所有这些。参考:https ://github.com/apache/nifi-registry
解决方案
您将需要在nifi-registry.sh
脚本中编辑此行以启用远程调试
run_nifi_registry_cmd="'${JAVA}' -cp '${BOOTSTRAP_CLASSPATH}' -Xms12m -Xmx24m ${BOOTSTRAP_DIR_PARAMS} org.apache.nifi.registry.bootstrap.RunNiFiRegistry $@"
只是我,还是内存占用真的很小?
比如在Kafka中,就有这一段的启动脚本
# Set Debug options if enabled
if [ "x$KAFKA_DEBUG" != "x" ]; then
# Use default ports
DEFAULT_JAVA_DEBUG_PORT="5005"
if [ -z "$JAVA_DEBUG_PORT" ]; then
JAVA_DEBUG_PORT="$DEFAULT_JAVA_DEBUG_PORT"
fi
# Use the defaults if JAVA_DEBUG_OPTS was not set
DEFAULT_JAVA_DEBUG_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=${DEBUG_SUSPEND_FLAG:-n},address=$JAVA_DEBUG_PORT"
if [ -z "$JAVA_DEBUG_OPTS" ]; then
JAVA_DEBUG_OPTS="$DEFAULT_JAVA_DEBUG_OPTS"
fi
echo "Enabling Java debug options: $JAVA_DEBUG_OPTS"
KAFKA_OPTS="$JAVA_DEBUG_OPTS $KAFKA_OPTS"
fi
然后它最终运行${JAVA} ... ${KAFKA_OPTS}
,如果你停止 Kafka 服务器并启动它
export KAFKA_DEBUG=y; kafka-server-start ...
然后你可以默认在端口 5005 上附加一个远程调试器
我了解您使用的是 NiFi Registry,而不是 Kafka,但基本上,您需要向 JVM 添加参数并重新启动它。您不能只附加到正在运行的注册表并浏览源代码。
推荐阅读
- excel - 添加的来自用户表单的图像的超链接链接不会打开
- python - 在 Python 中发送带有输出日志和成功状态的电子邮件
- azure - 使用多个区域 Azure 队列时如何将消息路由到正确的队列
- python - 我创建了一个函数,可以根据频率将列表中的数字分组到列表中,我需要帮助来优化它
- automata - 找到一个接受语言 L = { a^{n!} : n >= 0 } 的线性有界自动机
- authentication - 代码 401:请求具有无效的身份验证凭据。gcloud 语音转文本
- python - Visual Studio 代码卡在 Select Python Interpreter 上
- javascript - TF.js在浏览器中加载model.json格式的对象检测模型
- .htaccess - 如何在多个目录级别上进行动态 .htaccess 重定向
- cgal - CGAL Mean_curvature_flow_skeletonization contract_until_convergence 函数产生输入多边形中不存在的分支