IntelliJ使用指南—— 导入Eclipse的Web项目

时间:2022-06-11 09:33:14

通常一个团队中可能有人用eclipse,有人用intelliJ,那么经常会出现需要导入别人用eclipse建好的web项目。而IntelliJ提供了多种项目类型的导入方式,其中就有eclipse。

在初始窗口中点击Import Project,在文件树中选择你的项目,打开导入窗口,选择Eclipse选项,点击下一步
    IntelliJ使用指南—— 导入Eclipse的Web项目

选择你的项目名称,可以选择下方的Open Project Structure after import,会在导入完成后,直接打开项目设置窗口;若不选,可以后面手动打开,区别不大。下一步。
    IntelliJ使用指南—— 导入Eclipse的Web项目

选择jdk,我这里已经配置好。若没有,点击左侧+号,配置jdk信息。然后选择一项你需要的jdk版本,点击完成。
     IntelliJ使用指南—— 导入Eclipse的Web项目

导入就完成了,这时候主窗口就打开了,左侧是项目目录,右侧是编辑区域。下图是目录树结构,发现已经生成了.idea目录和web_test.iml文件,这些是idea的IDE依赖文件。
     IntelliJ使用指南—— 导入Eclipse的Web项目

若是前面选择了Open Project Structure after import,此时会自动打开下图窗口,若是没有选择,那么鼠标点击项目名称后,按F4打开。此时我们看到highlight部分是选择的jdk版本,下面是默认的编译输出路径,但是这个暂时是没用的,后面会被覆盖掉,所以不用管它。
     IntelliJ使用指南—— 导入Eclipse的Web项目

左侧选择下一个菜单,Modules,这是idea的概念,project下面包含了Modules。这里插一句,有很多人会对这个概念很迷糊甚至不齿,但这个概念的确是正确的,它是来自于maven的思想,如果你看到过一些大型开源软件,开源nosql的源码就知道,一个project下面会分很多模块开发。但是对于常规的java web来说,不用管那么多,就理解为一个project就是一个module,两者合二为一就行。
     这个菜单下,首先点击右侧三个横向标签页Dependencies,看下图,底下显示了3 errors found,另外我手贱去画了几条高亮,其实这些高亮处都是红字,说明在idea里是不存在的。包括SDK一栏,和下面两个jar包,都是从eclipse依赖文件中读出的,因此全部删掉。
    IntelliJ使用指南—— 导入Eclipse的Web项目
    
    然后选择三个横向标签页的Paths,会看到highlight处,这里就是我说的覆盖掉前面的编译输出路径,当然,使用默认就可以,不需要改动。会将class文件放到src同级的build目录下。
    IntelliJ使用指南—— 导入Eclipse的Web项目

三个标签页的第一个Sources如下图,没有需要修改的,这里主要定义了几个目录的角色,通过颜色标识,比如src默认定义为Sources,其他暂时都没有角色。而如果项目是用maven构建的,那么Sources,Tests,Resources和Test Resources就都有对应的目录了。可以看出,idea很大程度上都是依靠于maven的思想,或者说它底层很多地方就是靠maven来运行的。而这几个不同的目录角色,各有一些独有的特性,如果不去搞清楚也不要紧。因为这些目录,对于eclipse来讲,都是classpath一个角色。
    IntelliJ使用指南—— 导入Eclipse的Web项目

接着,选择左侧Facets菜单,这个概念在eclipse里也是有的,就是标明项目是由哪些组件构成的,如web,spring,strtus,hibernate等。点击+号,进行选择,这里选择web。
    IntelliJ使用指南—— 导入Eclipse的Web项目

点击后,会发生有趣的事情,左侧菜单会跳转到Modules,而右侧,展现出web配置相关的表单。关于左侧的跳转,你在配置万Facets后会发现,这两个菜单项中都会存在这些配置,web,spring等等。我并不是很理解为什么,猜测和多模块的思想有关。
   右侧配置项中,两处高亮,上面是web.xml路径,下面是web根目录。这里是默认路径,与我们不符,需要手动修改。因为idea默认web根目录名字为web,而不是eclipse的WebContent,像MyEclipse是WebRoot。
   IntelliJ使用指南—— 导入Eclipse的Web项目
    
    修改好后,看到右下角,有一个按钮,Create Artifact,这又是maven地概念了,这个Artifact指的就是将要投到tomcat里去跑的那个目录。只不过它不会真的拷贝到tomcat安装目录下。只是会让tomcat来寻找这个路径,运行目录下面的程序。
   IntelliJ使用指南—— 导入Eclipse的Web项目

点击后,左侧跳到Artifact菜单,右侧展现配置表单。这个过程与你手动切换到Artifact菜单,然后点击+号选择打包类型的效果是一样的。刚才那个按钮是idea的智能化行为。
    表单中,name,随便取,可以不用修改。Type,Web Application: Exploded是web开发的常用类型,无需修改。Output directory,输出路径就是这个Artifact的目录所在,idea会将所有需要的资源,包括class,lib,web目录等等以tomcat能够识别的目录结构拷贝到这里。而tomcat会直接使用这个目录运行系统。默认是与src平级的out目录下。一般也不用修改。
    右侧的区域Available Elements中,最有可能出现的就是lib目录下的jar包,这里测试环境我忘了准备。但是一般情况下会列出一个jar包列表。这时候会有红线提示,要你把jar包加入左侧的输入目录结构中。那么右键菜单中选择Put into Output Root。这样错误提示会消失。但是!!我这里要提一下,这个步骤其实现在的场景下是无效的,或者说这个错误提示完全不用管它。因为你会发现你即使不把jar包导入左边,运行时,lib下的所有jar包依然会拷贝到artifact目录下。但这不是idea的bug,是有原因的,这里就不说了。
    IntelliJ使用指南—— 导入Eclipse的Web项目

点击OK就可以了,这样项目配置就算完成了。然后是配置tomcat。

上部菜单栏会有一个小三角,下拉后选择Edit Configuration
    IntelliJ使用指南—— 导入Eclipse的Web项目

弹出窗口后,按图示选择。
    IntelliJ使用指南—— 导入Eclipse的Web项目

选择后,打开tomcat配置表单。
    name,随便取,我一般取tomcat5/6/7。Application Server,选择一个以关联的tomcat版本,若没有关联过,点击右侧Configure做关联。After launch可以勾选,在start/restart tomcat后会自动打开浏览器并访问指定url。右下角有一个和session相关的勾选框,可以勾选,作用是restart以后,前面session中的值可以自动设置,就不用再次登陆啦~~
    IntelliJ使用指南—— 导入Eclipse的Web项目

切换到第二个标签页deployment,点击右侧+号,选择第一项artifact,选择刚才创建的那个artifact,
    IntelliJ使用指南—— 导入Eclipse的Web项目

右侧的Application context作用是你的url访问根路径,默认是/,就是说你的url中不包含我们以往所习惯的项目名,比如若是在web根下有index.jsp,那么路径就是http://127.0.0.1:8080/index.jps,而不是http://127.0.0.1:8080/web_test/index.jsp,当然,出于对传统的习惯,这一项你可以改成/web_test
    IntelliJ使用指南—— 导入Eclipse的Web项目

点击OK,tomcat配置就结束了,然后就可以开始运行tomcat了。界面上部会有tomcat图标,右方有run, debug图标,点击即开始运行。浮出run/debug Panel。
    IntelliJ使用指南—— 导入Eclipse的Web项目

如果log一切正常,就说明运行起来了。在前面的过程中,存在一些配置,对开发过程还是有帮助的,但是与运行起来不影响,就不一一举例说明了。