使用IntelliJ IDEA社区版动态加载webapp

IntelliJ IDEA在重构方面碾压eclipse。但是IDEA的免费社区版并不支持web应用开发。好在Maven有一个maven-jetty-plugin插件。如果你正在用IDEA社区版开发一个web应用,可以使用它来动态加载并调试IDE里的web应用。笔者目前使用的IDEA版本为2016.1.1。

准备环境

假设我们有一个maven的web项目,已经用IDEA打开了。那么就可以在pom.xml里加上maven-jetty-plugin的插件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

...


...



org.mortbay.jetty
maven-jetty-plugin
6.1.26

/
0


8080
60000







这样便可以在命令行里用以下命令直接启动jetty服务器:

1
mvn jetty:run

集成IDEA

在菜单Run->Edit Configurations里,新增一个Maven,填入下图所示的参数:

  • Name:Jetty
  • Working directory:默认就好
  • Command line:jetty:run

然后在Runner标签里,填入下图所示的参数:

  • VM Options:-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=6006

端口6006可以自行决定,别和其它端口冲突就行。在菜单Run->Edit Configurations里,新增一个Remote,填入下图所示的参数:

  • Name:Jetty-Remote-Debug
  • Port:6006

和先前在Runner标签里填写的端口一致就行。

现在就可以试试啦。首先运行Jetty,然后调试Jetty-Remote-Debug。不出意外的话,现在可以访问自己的webapp,并且可以在程序中调试了。现在修改一段程序,编译之后,新程序就能立刻生效了。刷新一下页面看看?

其它

照例附送一些Mac OS X的keymap快捷键:

  • 运行Jetty:Alt+Shift+F10
  • 调试Jetty-Remote-Debug:Alt+Shift+F9
  • 编译:Command+Shift+F9

参考资料

https://gist.github.com/naaman/1053217/1fc1403d9d6ebc0194ecd0bf84cb0dec84b92eea