作者 | 郑祎
责编 | Elle
前言
IntelliJ IDEA Community Edition(社区版)不支持Tomcat,不想花钱购买Ultimate版本,也不想使用Eclipse,尝试通过其他方式使IDEA社区版支持Tomcat。
尝试的方法
2.1. Smart Tomcat插件
在IDEA社区版(2019.2.4)中安装了Smart Tomcat插件,并使用其启动Tomcat应用,遇到了以下问题:
Web应用的class文件未被自动拷贝到对应的Web应用根目录中,导致Web应用的代码未被加载,需要手工处理,使用不方便;Tomcat日志只生成了localhost_access_log.txt日志文件,没有生成catalina.log、localhost.log等日志文件,排查问题不方便。使用Smart Tomcat插件遇到问题之后,放弃了使用该插件,没有再去分析是否因为使用方法不当。
可行方法
3.1. 说明
之后通过Gradle脚本,使IDEA社区版支持Tomcat(也支持IDEA Ultimate版)。
完成的Gradle脚本及示例Web工程代码可以从 https://github.com/Adrninistrator/IDEA-IC-Tomcat/ 、 https://gitee.com/adrninistrator/IDEA-IC-Tomcat/ 下载,脚本内容很短,有效行数不超过200行,处理也很简单。
通过上述Gradle脚本,结合IDEA的功能,在完成配置后,可以实现以下功能,能够达到与Eclipse或IDEA Ultimate版本对Tomcat支持的功能接近的效果。
一键启动Tomcat并加载Web应用一键停止Tomcat(应用实例可以接收到Web容器销毁通知)一键启动可调试的Tomcat(Web应用)一键从Tomcat(Web应用)启动时开始调试3.2. 依赖环境
IDEA使用IntelliJ IDEA Community Edition 2019.2.4版本。
Tomcat支持Tomcat 7、8、9版本(测试过Tomcat 7.0.55、7.0.79、8.5.20、9.0.30版本),理论上也支持Tomcat 5、6版本(未测试)。
Gradle支持Gradle 4、5、6版本(测试过Gradle 4.1、4.7、5.6.4、6.0.1版本)。
JDK使用JDK 1.8.0_144版本。
操作系统使用Windows 7 x64 SP1版本。
3.3. IDEA中执行Gradle脚本
假设存在以下Gradle任务:
task testTask {doFirst {println"测试-" + System.getProperty("arg") }}
3.3.1. 在Terminal中执行
在IDEA的Terminal中执行以上Gradle任务时,可以通过gradle或gradlew命令,以命令行的方式执行,并可以通过“-D”前缀指定传递给Gradle脚本的JVM参数,与执行Java程序时类似。
执行上述任务的Gradle命令示例如下所示:
gradle testTask -Darg=abcgradlew testTask -Darg=abc
执行的结果如下所示:
> Task:testTask测试-abc
3.3.2. 在Run/Debug Configurations中执行
打开IDEA的“Run/Debug Configurations”窗口,点击加号后,从弹出菜单中选择“Gradle”,可以新增一个配置,用于执行对应的Gradle任务。
打开“Configuration”标签页,对参数进行修改。
点击“Gradle project”右侧的图标,选择当前项目;在“Tasks”右侧填入需要执行的Gradle任务名称,如“testTask”;在“VM options”右侧填入需要传递给Gradle脚本的JVM参数,如“-Darg=test_arg”,点击箭头图标可以展开编辑框。
在Run/Debug Configurations中完成配置后,可以选中对应的配置,点击执行按钮开始执行。
执行的结果在“Run”窗口中显示,如下所示:
当需要修改Run/Debug Configurations使用的Gradle时,可以打开IDEA的“File | Settings | Build, Execution, Deployment | Build Tools | Gradle”菜单,修改“Use Gradle from”选项。
3.3.2.1. 解决在Run/Debug Configurations中执行Gradle脚本中文乱码问题
在Run/Debug Configurations中执行Gradle脚本或编译过程时,输出的中文可能乱码。
或如下图所示:
进行以下设置,可以解决上述中文乱码问题。
打开IDEA的“Help”“Edit Custom VM Options...”菜单;
在打开的文件最后增加“-Dfile.encoding=UT