首页 > 解决方案 > 如何开始调试 Github maven 项目

问题描述

我在调试从 Github 克隆的代码方面非常陌生。但是,到目前为止,我已经完成了以下工作:

问题: - 现在,目前我不确定应用程序的主类文件是什么,以及我应该从哪里以及哪个 .java 文件附加断点 - 一旦附加了断点,我将如何在遍历 UI 时对其进行调试。

有人可以给我一个指针。提前致谢!例如:我正在“Apache/NiFi-Registry”项目中测试所有这些。参考:https ://github.com/apache/nifi-registry

标签: javamavenremote-debuggingapache-nifi

解决方案


您将需要在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 添加参数并重新启动它。您不能只附加到正在运行的注册表并浏览源代码。

远程调试 Java 应用程序


推荐阅读