有没有办法从 IntelliJ 实时调试 ElasticSearch服务器?我没有 Maven 的任何exp。我的目标是让它运行,同时我可以调试它并检查变量和执行流程。
答案 0 :(得分:8)
好的发现了。使用IntelliJ的“运行”菜单添加新的运行配置。
Main class
设为 org.elasticsearch.bootstrap.Bootstrap VM options
设置为 -Des.foreground = yes 瞧。 Credits
答案 1 :(得分:2)
您尚未表明是否要求调试/步入Elastic Search(ES)客户端或服务器代码。
对于客户代码
只要附加了源,是的,您可以调试它。如果您使用Maven,可以要求它下载(并附加)源,假设它们在Maven Central Repository中可用。 (弹性搜索确实将其源部署到maven中心,因此您应该很好。如果没有,则必须在“项目结构”对话框中“手动”附加源jar。)
要让maven下载并附加,请打开maven工具窗口并单击“下载...”按钮,然后选择下载源或下载源和文档。 IDEA现在将下载并附加项目中所有依赖项/库的所有可用源(和/或javadoc)JAR。如果需要,您可以将maven配置为始终执行此操作。要为当前项目设置它,请单击maven工具窗口中的设置按钮并选择导入节点,或转到设置> [项目设置]> Maven>导入。在对话框中,选中“自动下载”源和/或文档选项。要将此设置为您创建的所有未来项目的默认设置,请转到文件>其他设置>默认设置> Maven>导入并进行设置。
一旦附加了源,您就可以进入弹性搜索代码,或者通过以下方式打开一个类1)使用 Ctrl + N 进行搜索for和输入一个类,再次键入 Ctrl + N 以在搜索中包含库类,或者2)使用 Ctrl + B (当光标在方法调用上时)或 Ctrl + Click
转到方法声明。然后,您可以设置断点。
对于服务器代码
您需要使用源代码创建弹性搜索项目。最简单的方法是克隆他们的回购(或以其他方式检查出来)。您也可以将ES服务器库(包括源代码)附加到项目中。
如果您在本地运行弹性搜索,只需创建一个本地运行/调试配置来运行ES并通过 Debug 启动。如果在远程服务器上运行ES,则需要创建远程调试配置,然后连接到远程ES服务器(需要使用正确的Java调试属性启动。)请参阅帮助> IntelliJ IDEA>参考>对话>运行/调试配置>运行/调试配置:远程和帮助> IntelliJ IDEA>语言和框架特定指南> Java EE>使用应用程序服务器>使用服务器运行/调试配置以获取更多信息。