IntelliJ
在开发Dapr应用程序时,通常会使用Dapr CLI来启动您的服务,例如:
dapr run --app-id nodeapp --app-port 3000 --dapr-http-port 3500 app.js
这会使用默认的组件yaml文件(在执行dapr init
时创建),使您的服务能够与本地Redis容器交互。这种方式在初期非常有用,但如果您需要附加调试器来逐步调试代码,该怎么办?此时,您可以选择不通过Dapr CLI直接启动应用程序。
一种方法是先通过命令行运行dapr run --
,然后启动您的代码并附加调试器。虽然这种方法可行,但需要在终端和IDE之间切换,并且对其他开发人员来说可能不够直观。
本文档将介绍如何直接在IntelliJ中使用dapr
进行调试。在开始之前,请确保您已通过dapr init
初始化了Dapr的开发环境。
让我们开始吧!
将Dapr添加为“外部工具”
首先,在修改配置文件之前,请退出IntelliJ。
IntelliJ配置文件位置
对于版本2020.1及以上,工具的配置文件应位于:
%USERPROFILE%\AppData\Roaming\JetBrains\IntelliJIdea2020.1\tools\
$HOME/.config/JetBrains/IntelliJIdea2020.1/tools/
~/Library/Application\ Support/JetBrains/IntelliJIdea2020.1/tools/
对于2019.3或更早版本,配置文件位置不同。请参见此处了解更多详情。
如有需要,请更改路径中的IntelliJ版本。
在<CONFIG PATH>/tools/External\ Tools.xml
中创建或编辑文件(如有需要更改路径中的IntelliJ版本)。<CONFIG PATH>
是操作系统相关的,如上所示。
添加一个新的<tool></tool>
条目:
<toolSet name="External Tools">
...
<!-- 1. 每个工具都有自己的app-id,因此为每个要调试的应用程序创建一个 -->
<tool name="dapr for DemoService in examples" description="Dapr sidecar" showInMainMenu="false" showInEditor="false" showInProject="false" showInSearchPopup="false" disabled="false" useConsole="true" showConsoleOnStdOut="true" showConsoleOnStdErr="true" synchronizeAfterRun="true">
<exec>
<!-- 2. 对于Linux或MacOS使用:/usr/local/bin/dapr -->
<option name="COMMAND" value="C:\dapr\dapr.exe" />
<!-- 3. 选择不与其他daprd命令条目冲突的应用程序、http和grpc端口(placement地址不应更改)。 -->
<option name="PARAMETERS" value="run -app-id demoservice -app-port 3000 -dapr-http-port 3005 -dapr-grpc-port 52000" />
<!-- 4. 使用`components`文件夹所在的文件夹 -->
<option name="WORKING_DIRECTORY" value="C:/Code/dapr/java-sdk/examples" />
</exec>
</tool>
...
</toolSet>
可选地,您还可以为可以在多个项目中重用的sidecar工具创建一个新条目:
<toolSet name="External Tools">
...
<!-- 1. 可重用的应用程序端口条目。 -->
<tool name="dapr with app-port" description="Dapr sidecar" showInMainMenu="false" showInEditor="false" showInProject="false" showInSearchPopup="false" disabled="false" useConsole="true" showConsoleOnStdOut="true" showConsoleOnStdErr="true" synchronizeAfterRun="true">
<exec>
<!-- 2. 对于Linux或MacOS使用:/usr/local/bin/dapr -->
<option name="COMMAND" value="c:\dapr\dapr.exe" />
<!-- 3. 提示用户4次(按顺序):应用程序id、应用程序端口、Dapr的http端口、Dapr的grpc端口。 -->
<option name="PARAMETERS" value="run --app-id $Prompt$ --app-port $Prompt$ --dapr-http-port $Prompt$ --dapr-grpc-port $Prompt$" />
<!-- 4. 使用`components`文件夹所在的文件夹 -->
<option name="WORKING_DIRECTORY" value="$ProjectFileDir$" />
</exec>
</tool>
<!-- 1. 无应用程序端口的可重用条目。 -->
<tool name="dapr without app-port" description="Dapr sidecar" showInMainMenu="false" showInEditor="false" showInProject="false" showInSearchPopup="false" disabled="false" useConsole="true" showConsoleOnStdOut="true" showConsoleOnStdErr="true" synchronizeAfterRun="true">
<exec>
<!-- 2. 对于Linux或MacOS使用:/usr/local/bin/dapr -->
<option name="COMMAND" value="c:\dapr\dapr.exe" />
<!-- 3. 提示用户3次(按顺序):应用程序id、Dapr的http端口、Dapr的grpc端口。 -->
<option name="PARAMETERS" value="run --app-id $Prompt$ --dapr-http-port $Prompt$ --dapr-grpc-port $Prompt$" />
<!-- 4. 使用`components`文件夹所在的文件夹 -->
<option name="WORKING_DIRECTORY" value="$ProjectFileDir$" />
</exec>
</tool>
...
</toolSet>
创建或编辑运行配置
现在,为要调试的应用程序创建或编辑运行配置。它可以在main()
函数旁边的菜单中找到。
现在,添加程序参数和环境变量。这些需要与上面“外部工具”条目中定义的端口匹配。
- 此示例的命令行参数:
-p 3000
- 此示例的环境变量:
DAPR_HTTP_PORT=3005;DAPR_GRPC_PORT=52000
开始调试
一旦完成上述一次性配置,调试IntelliJ中的Java应用程序与Dapr需要两个步骤:
- 通过IntelliJ中的
工具
->外部工具
启动dapr
。
- 以调试模式启动您的应用程序。
总结
调试后,请确保在IntelliJ中停止dapr
和您的应用程序。
注意:由于您使用dapr run CLI命令启动了服务,dapr list命令将在当前运行的Dapr应用程序列表中显示来自IntelliJ的运行。
祝调试愉快!
相关链接
- 更改 IntelliJ配置目录位置
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.