【问题标题】:How to remote debug the changes on-fly如何实时远程调试更改
【发布时间】:2019-09-19 17:34:30
【问题描述】:

我使用java编程语言,eclipse IDE,我工作的项目是一个war应用程序,做了一些改变后我做了mvn clean install -u,在war生成后,我将它部署到tomcat并设置远程set JPDA_OPTS=-agentlib:jdwp=transport=dt_socket,address=8082,server=y,suspend=n 并启动 Catalina 并启动调试服务器。当我进行一些更改并进行调试时,调试器不会显示我在构建后所做的更改以反映我需要进行的所有这些过程的更改,这需要大约 10 分钟我想知道有没有办法可以做到这一点飞行中。

【问题讨论】:

  • 您是否在调试会话处于活动状态时重新编译文件in Eclipse? (这就是你应该做的所有事情,而且不应该花 10 分钟)
  • @dnault 重新编译意味着 mvn clean install 你的意思是调试器打开时?
  • This answer 让我觉得默认情况下 Eclipse 会在您保存文件时自动重新编译您的项目文件。如果您在调试会话期间执行此操作,Eclipse 应该将已编译类文件的新版本发送到远程 JVM。需要注意的是,这只适用于代码更改,而不是资源文件的更改等。

标签: java eclipse debugging war remote-debugging


【解决方案1】:

如果您想在 tomcat 中动态加载更改,请直接构建到 tomcat 的 webapps 目录。

实现此目的的一个简单方法是使用“ln -s”命令创建符号链接,因此您的 tomcat 中的 webapps/appname/WEB-INF/classes 目录链接到项目的 target/classes 目录。这假设您在 Linux 或 Mac OS 上工作。

【讨论】:

  • 但是webapps目录没有pom怎么构建?
  • 如果您使用符号链接,您仍然可以构建您的项目。 webapps/appname/WEB-INF/classes 将指向您项目的目标/类。
  • 但在网络应用程序中没有 .java 文件
  • 保持项目原样,只需在 webapps/appname/WEB-INF/ 目录中添加一个符号链接,名称为“classes”,指向项目的 target/classes 目录。我不知道如何更好地解释它。你检查过什么是符号链接吗?
  • 我研究过符号链接。你能用几张你用过的 IDE 的截图来了解一下吗?这很容易理解。
猜你喜欢
  • 2015-05-26
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 2011-06-10
  • 2017-09-20
  • 2014-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多