工作中难免会遇到不同IDE的情况,接下来讨论一下如何将svn上的myeclipse项目导入idea中。
一、先新建一个普通web项目
参考
需要注意的是,idea新建的web项目结构和myeclipse不一样,名称也不一样,如果有需要,可以将web目录名称改成WebRoot。
修改完之后,记得修改web.xml和项目根路径的位置。
二、检出svn项目
上一步中web项目已经可以正常启动,这时关掉idea(File -> close project),另外新建一个项目(与上一个项目在不同目录下),点击check out from version control,然后选择subversion。
在弹出的窗口中选择仓库,如果没有的点击“➕”号新建一个地址。
然后点击chekout,选择项目目录,选择检出目录,点击OK,等待项目检出。
三、将检出项目与新建的普通web项目合并
如图,左边是从svn检出的项目,右边是新建的普通web项目。
将普通新建的web项目调整为svn检出的项目结构,(我这里是将自动生成的src目录删除,然后将需要的目录拷过来),如下图
注意,将.svn目录文件也一并复制过来,然后关掉idea,重新打开一开始新建的普通web项目,启动项目,成功!
四、其他问题
1.svn关联
如果打开idea右侧没有svn更新、提交的符号,则点击vcs -> enable version control integration,在弹出窗口中选择subversion即可。
注意:这里采用了拷贝.svn文件的方法将项目与svn服务器建立关联,而不是采用share directory的方法,如下图:
因为share directory可能将服务器上代码覆盖,造成不必要的损失,所以采用第一种。
2.运行项目报错
IDE错误提示:cannot resolve taglib with uri http://java.sun.com/jsp/jstl/fmt 或者 cannot resolve taglib with uri ...或者org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files
有一种可能:项目lib包中没有jstl的jar包。
myeclipse中jstl的jar包不在referenced libraries中,而是单独的(不知道为什么会这样,没有深入研究),因此项目在idea中的lib下就没有jstl的jar包,解决办法:将这两个包复制到idea项目的WEB-INF/lib包下,重新编译即可。
--------------以上是我个人遇到的一些问题和解决办法,不保证对每个人有效,如有问题,欢迎提出
--------------2019.05.16 更新
如果编译项目报错,提示“找不到jar包或找不到符号”
我已经确认过项目在myeclipse中可以正常运行,但是一到idea就报错,确定不是代码的问题。而且试过一些博客的方法,比如将文件的编码格式都改为UTF-8,或者清除缓存重启项目都不行,可以试一下下面的方法:
用eclipse的方式编译项目,点击ok,重新编译项目,通过!(这个方法我找了两天,最后还是自己瞎点点出来的,在此记录一下,如果对你们有帮助那就更好了)