首先说明本文适合读者为由eclipse换idea IDE的朋友们,主要针对导入javaweb项目过程中可能会遇到的一些问题给出个人意见。以前一直使用eclipse,最近觉得特别卡,实在是该优化的都优化了(可能本人优化得不好),总之换了idea,同事给了安装包及破解jar包,安装破解后使用,第一次导入之前eclipse中的项目(没有看教程,个人习惯,先自己搞一通),阴差阳错的导入成功,tomcat部署正常使用,如果故事到此结束,我也不必在此赘述。问题来了,我再次导入其它项目时出了问题,折腾多遍,每次错误不尽相同,最终得出的经验,个人觉得值得一提,或许对您有用。
废话太多,正文开始。
个人认同网上大多数说法,
首先,file-new-project…进入如下界面:
勾选Web Application(3.1),点击next,进入下一个页面,
本人在D盘新建一个文件夹newWorkspace,如上图写入相应name及location;点击finish,完成project建立。接着会出现如下对话框,
点击New Windows,打开新的窗口,之前的窗口可以关掉了。
新窗口如下,
点击上图画绿圈的位置或点击file-project structure,进入project structure界面,如下,
该界面有三个需要注意的地方,1、引入jdk,2、选择sdk,这里选择7-Diamonds,3、project compiler output:D:\newWorkspace\out;(在之前自定义的project location里自动创建out文件夹存放项目编译后的输出文件等),完成以上三步后,点击左侧Modules,界面如下,
Idea在咱添加project时自动创建了同名module,这个项目没什么用,建议连同web一块删除,删除后点击+号,选择import Module,弹出如下界面,
选择项目存放位置,如这里我添加一个之前用写的一个web工程FH-WEBADDLIC,点击ok,进入下一个界面,
为了让大家看到这个导入的过程,让idea重新自己建module,(不继承符合eclipse目录结构的module)这里我选择Create module from existing sources,而不选择Import module from external model,点击next,进入如下界面
显然src 目录下的是我们需要的,而另一个我选择不勾选(这里跟我的项目有关系,可能您的项目只有src那个目录),点击next,进入如下界面,
这里只选择lib,去掉另一个的勾选,继续点击next,一直到出现finish,点击finish,module添加成功。添加成功后界面如下,
点击web,注意观察1、2、3,1、2中应有一个为以前项目的web.xml;3为jsp等资源的存放路径,如果不是,手动更改(点选要更改的路径,点击右侧的加减号下面的绿色铅笔按钮),一般不用更改,idea会自动添加这个web项信息。然后点击FH-WEBADDLIC,查看项目情况,
点击path,如下
勾选Inherit project compiler output path或use module compiler output path均可,如果project界面里的project compiler output路径不做改动的话,这里Inherit project compiler output path默认的路径其实就是project compiler output path+”/production”+module名称,与use module compiler output path默认的路径是一样的,因此不需要修改即可。
Module-Dependencies界面需勾选lib,选择依赖的jar包,当然如果出现红色的选项,可以直接删除。之后,由于lib目录已加入Modules,Libraries不需要再次导入,如发现有jar包未导入,进入Libraries界面添加jar包,并返回Module-Dependencies界面勾选添加的jar包。
另外,这里web配置文件信息在此之前由idea已自动添加,因此无需进入Facts界面,添加web信息,如您的web信息未添加成功,需进入该界面,点击+号选择web,并选择项目web .xml路径。如下图,
接着点击Artifacts,进入如下界面,先删除系统自动生成的与project同名Module的部署包,添加本Module的部署文件,(可实现热部署)
添加成功后,如下图,(注意途中画线的位置,部署的方式选择web application exploded)点击Apply和OK,到此项目导入基本完成。
接着配置tomcat,点击下图位置,Edit Configuraions…
或点击run目录下的Edit configurations…,如下图
进入如下界面,如图选择tomcat server –Local,
接着进入如下界面,
注意红线位置,name随便搞一个即可,Application server后面的configure是配置本地tomcat的路径,端口号,自己可以换,点击(上图中画圈的位置)Deployment,进入Deployment配置界面,如下
点击该部署包,删除,再点击+,选择artifict,配置部署包进入tomcat,如下图
点击Apply,OK。这样我们基本完成了导入、部署项目。
重点来了,我一开始就是这样操作的,tomcat是各种报错啊(以前这个项目运行是没有问题的),折腾半天,猛然发现是由于idea与eclipse下的项目结构不同所致。在D:\newWorkspace\out\artifacts\FH_WEBADDLIC_war_exploded\WEB-INF\classes目录下只有类编译后的.class文件,没有项目的配置文件,注意观察上面路径,newWorkspace\out 是project compiler output , artifacts\FH_WEBADDLIC_war_exploded\WEB-INF\classes是部署包编译文件及所有配置文件的存放位置,与Module path: D:\newWorkspace\out\production\FH-WEBADDLIC路径下包含内容是一致的,
此时该路径下只有一个com文件夹,如下图
com文件夹里存放着项目里所有.java文件编译后的.class文件,所有关于spring、ibatis等的配置文件及数据库连接信息等均应该在D:\newWorkspace\out\artifacts\FH_WEBADDLIC_war_exploded\WEB-INF\classes和D:\newWorkspace\out\production\FH-WEBADDLIC中存在,回头再看原代码存放位置,所有配置信息存放在一个resources文件夹,如下图,
将所有文件及文件夹剪切至D:\newcode\FH-WEBADDLIC\src目录下,再次build Module,发现D:\newWorkspace\out\artifacts\FH_WEBADDLIC_war_exploded\WEB-INF\classes和D:\newWorkspace\out\production\FH-WEBADDLIC路径下的内容都发生了变化,如下图
再次启动项目,发现成功了,而且更改代码可以实现热部署。总结:idea在导入项目时,会自动识别src文件夹,并编译该文件夹,因此我们应该将配置文件等重要文件移至该文件夹下,再进行项目导入。