调试Grails 3.x应用程序

13

我正在尝试使用grails run-app --debug-fork来调试一个Grails 3.x应用程序,但是当应用程序启动时,它并不等待调试器连接。有没有解决方案可以调试Grails 3.x应用程序?

4个回答

20

请使用--debug-jvm标志。

例如:grails --debug-jvm run-app

3
可以用集成开发环境(IDE)来使用这个选项吗? - IcedDante
@IcedDante 你可以通过在命令行中写入 --debug-jvm 来配置运行设置,从而轻松地在任何 IDE 中使用它。所有标准的 IDE 都支持额外的命令行参数。 - Saqib Ahmed
这将打开交互式控制台,而不运行应用程序。 - Pablo Pazos

11
在IntelliJ中,您可以右键单击Gradle任务bootRun,然后选择Debug。

3
另一种选择是直接运行位于 grails-app/initApplication 类。它具有一个 static void main 方法,可以像常规应用程序一样运行。您可以通过调试配置文件直接从IDE中运行它。

3
在IntelliJ IDEA 2016.1中,我创建了两个配置。这使我可以充分利用IntelliJ IDEA提供的所有上下文菜单等功能。以下是具体步骤:
  1. 第一个配置是“运行”配置。编辑默认配置,在“命令行”字段中输入 run-app --debug-jvm
  2. 第二个配置是“远程”配置。在“运行/调试”对话框中,点击“+”符号并从列表中选择“远程”。将其命名为“Debug”并保存。
  3. 从配置下拉菜单中选择您的“运行”配置,然后单击绿色箭头运行应用程序。监视控制台输出,直到看到消息 Listening for transport dt_socket at address: 5005
  4. 选择您在步骤2中创建的远程调试配置文件,并单击调试按钮。几秒钟后,控制台输出将显示 Grails application running at http://localhost:8080 in environment: development
成功!

我的项目运行良好,但如果我按照上面提供的步骤进行调试,就会出现以下错误:ERROR org.apache.tomcat.jdbc.pool.ConnectionPool - 无法创建池的初始连接。 - Ashu
在 Gradle 文件中,我添加了以下内容:buildscript->dependencies->classpath 'mysql:mysql-connector-java:5.1.29',现在它可以工作了 :) - Ashu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接