首页 文章

如何在Github maven项目上开始调试

提问于
浏览
1

我是调试从Github克隆的代码的新手 . 但是,到现在为止,我已经完成了以下工作:

  • 将repo克隆到我的本地机器(git clone)以及使用"sourcetree"软件 .

  • 构建代码(mvn clean install)

  • 能够在IDE中导入maven项目(Ecliplse,InteliiJ)

  • 构建完成后,我能够在构建后创建的target / bin目录中启动应用程序(例如:start.sh)

  • 成功登录应用程序的UI

问题: - 现在,在这一刻,我不确定什么是aplication的主类文件,从哪里和哪个.java文件我将附加断点 - 一旦附加断点,我如何在遍历UI时调试它 .

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

1 回答

  • 2

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

    Remote debugging a Java application

相关问题