【问题标题】:how to start debugging on Github maven project如何开始调试 Github maven 项目
【发布时间】:2018-08-25 16:17:46
【问题描述】:

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

  • 将 repo 克隆到我的本地计算机 (git clone) 以及使用“sourcetree”软件。
  • 构建代码(mvn clean install)
  • 能够在 IDE(Ecliplse、InteliiJ)中导入 maven 项目
  • 构建完成后,我可以在构建后创建的 target/bin 目录中启动应用程序(例如:start.sh)
  • 成功登录应用程序的 UI

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

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

【问题讨论】:

  • 主类:github.com/apache/nifi-registry/blob/master/… 您可以使用差异代码覆盖率来找出哪个代码用于哪个功能。
  • @howlger 谢谢!我上了主课,但对差异代码覆盖率了解不多?我应该首先在主类中添加一个断点吗?
  • 我找不到允许您定义远程调试端口的启动脚本。

标签: java maven remote-debugging apache-nifi


【解决方案1】:

您将需要在 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

【讨论】:

  • 我已经打开 NIFI-5556 为 Apache NiFi 和 NiFi Registry 添加类似的功能。感谢您的回答。
猜你喜欢
  • 1970-01-01
  • 2013-12-04
  • 1970-01-01
  • 1970-01-01
  • 2020-08-04
  • 1970-01-01
  • 2014-04-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多