注:Eclipse导入项目时,不管是否maven项目,都可以直接File>Import>General>Existing Projects Into...>next>Browser选择项目文件夹>勾选Copy projects into workspace>Finish。如图:
多次导入同一个项目(同一个项目,但文件夹不同),用于进行测试,原项目要继续保留,作为备份。
但当我们导入在Eclipse项目管理器中已经存在的项目时,Eclipse总是会提示我们Some project cannot be imported because they already exist in the workspace,如图:
解决办法:在eclipse这里将原先的项目随便改个名即可。例如,右键项目>Refactor>Rename,改为"ssm666"。然后再次导入。
当然,Tomcat启动项目时可能会报错,如下:
java.lang.IllegalStateException: Web app root system property already set to different value: 'webapp.root' = [D:\eclipse-workspace1\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\ssm555\] instead of [D:\eclipse-workspace1\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\ssm666\] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!
解析与解决:
部署在同一容器中的Web项目,web.xml要配置param-name为webAppRootKey且param-value不同的<context-param>,如果该项目不配置,则默认有一个:
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>webapp.root</param-value>
</context-param>
因为这两个项目是相同的,而且都没配置,所以都有上面这个默认配置,第一个项目只要启动过一次之后,webapp.root在该Tomcat中就已被设置,当再次用该Tomcat中启动第二个项目时,webapp.root这个value再次被尝试设置,于是报了这个错。
web.xml添加如下配置即可。如果项目中已配有webAppRootKey,则修改param-value保证同一个Tomcat中该param-value是唯一的即可:
<!-- dev_gx_1 这名字可以随便取,和tomcat中其他项目的值不一样即可-->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>dev_gx_1.root</param-value>
</context-param>