背景
一直听说IntelliJ IDEA很厉害,但工作中一直用的是Eclipse。这两天放假,准备来试用一下Idea。
新建Eclipse项目
这个步骤是为后面的工作,做好素材准备。这一步比较简单,过程:略。。。
NOTE:截图的时候,还没有web.xml文件。需要在WEB-INF目录新建web.xml文件。
Idea导入项目
1. IDEA导入项目
IDEA之前如果没有的打开过的话,刚需要先临时建一个工作空间,以便IDEA打开。
导入项目的菜单路径:
1.1 File-->New-->Project from Existing sources。
1.2 选择Eclispe项目,然后点击OK。
1.3 选择导入的项目的类型,此时需要选中Import project from external model及下面的Eclipse选项,然后点击Next。
1.4 select Eclipse project directory这个页面,建议不做更改,使用默认设置,直接点击Next即可。
1.5 select Eclipse projects to import选择导入项目(如果1.2是选择的工作空间目录,且空间中有多个项目时,此处会出现所有可以导入的项目),点击Next.
1.6 choose project code style,此页直接点击Next。
1.7 select project code SDK,此页就是选择JDK(一般来说,只有一个选项),按项目需求选择即可,然后点击Finish。
1.8 此时,一般为了不影响Idea当前工作窗口,建议用一个新窗口(New Window)打开。
2. 配置新项目
2.1 打开Project Structure窗口。接上面一步,在新窗口中,Project Structure窗口有可能是直接打开了。如果没有打开,只需要在左侧Project视图中,选中项目然后F4,就可以打开Project Structure窗口
2.2 设置Modules。Eclipse导入的项目,此处主要是将Dependencies中关于Eclipse的依赖移除即可。
2.3 设置Libraries。这个过程,我做了一幅更直观的GIF(也是第一次尝试做GIF)来表达。。。。突然感觉录个小视频是不是。。。
2.4 Facets设置。此步骤主要是为了给Web项目,配置web.xml及WEB内容目录的作用。
TIPS:此处点击“+”时,如果没有web选项的话,可以先关掉这个窗口去检查web相关插件是否打开。
插件检查方法:file-->settings-->pulgins-->installed 将一些web相关插件都勾选上。
2.4.1 上面选择到项目的web.xml
2.4.2 下面选择到项目的WebContent目录
2.5 Artfacts设置。该步骤是设置WEB项目,打包(包含打出文件夹形式,及war包形式)相关配置。
2.5.1 文件形式打包配置。点击“+”号后,选择Web application:Exploded-->From Modules-->选择项目-->
2.5.1.1 Name处为这个打包程序的名称。而真实的项目名称(放入tomcat-->webapp目录下的文件夹名称。即http://127.0.0.1:8080/Name)是在output directory的最后目录名称。
2.5.1.2 该处如果没有lib目录。则在WEB-INF上目录右键-->Create Directory。然后在lib目录上右键-->Add Copy of-->Library Files。
2.5.1.3 output root主目录右键-->Add Copy of-->Directory Content,然后选择项目的WebContent目录。
2.5.2 war包形式的配置,较为简单。配置好后,可以菜单Build-->Build Artfacts然后进行war的编译及打包。点击“+”号后,
选择Web application:Arhive-->For XXX。
下图中红色箭头所指的地方,都可以按需要进行重命名。
2.6 点击OK,配置完成
3. TOMCAT配置
3.1 tomcat配置
3.1.1 点击左上"+"选项,然后选择tomcat server。
TIPS:如果此处没有tomcat选项。先点下方的more。如果仍没有,则去检查web相关插件是否打开。
插件检查方法:file-->setting-->pulgs-->install 将一些web相关插件都勾选上。另外TomCat TOMEE这个插件也需要打开。
3.1.2 点击Add Configureation选项
3.1.3 弹窗中点击Tomcat Home
3.1.4 选择Tomcat主目录即可
3.2 tomcat添加项目。点击Artifact。。之后,选择刚才2.5配置即可
4. 运行项目
坑
至此项目,成功运行起来。下面的内容,是我第一次导入时遇到的一些问题,总结出来,供参考。
1.运行项目时报错。
Caused by: java.lang.NoClassDefFoundError: LFilterConfig; at java.lang.Class.getDeclaredFields0(Native Method) at java.lang.Class.privateGetDeclaredFields(Class.java:2583) at java.lang.Class.getDeclaredFields(Class.java:1916) at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:110) at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:269) at org.apache.catalina.startup.WebAnnotationSet.loadApplicationFilterAnnotations(WebAnnotationSet.java:109) at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:68) at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:330) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:778) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:301) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5051) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) ... 38 more Caused by: java.lang.ClassNotFoundException: FilterConfig at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188) ... 51 more
解决:
在2.2这个步聚时,我将src点成了,tests如下图一,正确应该下面第二幅图的样子。
但如果不小心,将要目录设置成了sourcesr 的话,则会找一到配置文件。如springmvc.xml之类的。所以这里一定要小心,关键这里点来点去,没有什么提示,只有颜色变化,第一次使用极不易察觉。
2.报错
无法将位于[/WEB-INF/classes/WebContent/WEB-INF/lib/kaptcha-2.3.2.jar]的资源添加到Web应用程序[/WEJIA]的缓存中,因为在清除过期缓存条目后可用空间仍不足 - 请考虑增加缓存的最大空间。
解决办法:
修改tomcat9的配置文件。修改apache-tomcat-9.0.24\conf\context.xml文件。<Context>内新增<Resources cachingAllowed="true" cacheMaxSize="100000" />