如何从eclipse转到intellij idea一直是困扰大家的难题,每每ide迁移,就会遇到各种神奇的未知BUG。我在多个项目后,总结了以下几点经验,为大家的ide迁移提供思路:

1、classpath

  java中的classpath类比python中的sys.path,是编译后项目中用来存放用户自定义source(源码)和resource(资源)的路径。
  eclipse的classpath存放在.classpath文件中,idea的classpath以文件夹的颜色区分。从eclipse转idea的同学,可以参考.classpath对idea进行配置。


2、Library

  lib是放置jar包的位置,如果项目不是maven项目,则lib没有固定放置位置。因此idea未必能检测出lib的真正位置。需要手动在project structure dialog中添加lib,并将其作为项目的dependencies。


3、output directory

  该配置在tomcat配置页面,表示打包文件的输出路径,tomcat会通过idea中该项的配置,自动查找该打包文件的位置,而非拷贝到tomcat的webapp目录下(类比php中的www目录)。
  一般情况下,从eclipse转到idea,该项可以随意配置。但是,如果项目代码中有相对路径的配置(例如“admin\login\login.properties”),则一定要注意,该相对路径,是相对于项目根目录而言的。想要找到login.properties文件,一定会按照output directory\admin\login\login.properties去查找,如果随意配置output directory,会找不到login.properties。因此,此类项目尤其要注意项目根目录的配置。


4、application context

  该配置在tomcat配置页面,表示与项目根目录output directory相对应的url,即路由。一般情况下,该项也可以随意配置,如果配“/”,则访问localhost即是访问项目根目录output directory下的index页,如果配“/abc”,则访问localhost/abc即是访问项目根目录output directory下的index页。
  但是,如果文章中有写死的url,例如,当用cas单点登录时,在配置文件中有如下配置

shiro.loginurl=http://localhost/cas/login?service=http://localhost/abc/shiro=cas

如果不把application context配成“/abc”,则系统找不到“http://localhost/abc/shiro=cas”,系统会出错。