我来自C ++,Python和Django的背景,我正在努力扩展我的视野并学习Scala和Lift。但是,我很难弄清楚如何使用eclipse调试Lift应用程序。
我可以使用一些电梯sbt模板创建项目并运行它们没问题。但是,我无法从Eclipse中启动应用程序,因为它无法找到Jetty,因此,我无法使用调试器来逐步执行Lift代码。几周的谷歌搜索没有多大帮助。
有人可以分享他们的方法或建议吗?我也是jvm的新手,所以请随意分享最佳实践或指出我可能缺少的重要差异。
答案 0 :(得分:7)
好的,我已经明白了这一点。
所以我实际上并没有从Eclipse调试器启动应用程序。我通过sbt启动应用程序,然后将Eclipse远程调试器连接到运行webapp的sbt vm。
这就是我的所作所为:
假设你在/ bin中有sbt-launch.jar:
创建文件/ bin / sbt_debug,其权限是执行并包含以下行:
java -Xmx512M -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -jar /bin/sbt-launch.jar "$@"
这个脚本正在做的是启动sbt并指示jvm允许在端口5005上进行调试
转到终端中的电梯项目目录并输入sbt_debug。一旦你进入sbt控制台,输入container:start / container:update或~rashty:start /~jetty:update,具体取决于你正在使用的sbt版本。
接下来转到Eclipse,单击调试图标并选择“Debug Configurations ...”
在左侧列中,单击“远程Java应用程序”并创建新的调试配置。将端口设置为5005。
点击Debug按钮,Eclipse调试器现在应该调试你之前开始的sbt进程
注意:这是第一个对我有用的方法。如果您有更好的,请分享
答案 1 :(得分:1)
我发现最有用的工具是Eclipse的SBT Eclipse Plugin和RunJettyRun插件。前者允许您根据SBT设置生成Eclipse配置文件,后者将从Eclipse启动Jetty并附带调试器。另外一个好处是,使用SBT提示符中的“eclipse with-source = true”生成Eclipse配置将下载并附加src jar,这样您就可以逐步完成Lift和您依赖的任何其他第三方库以及您自己的库码。