用maven创建eclipse工程,导入MyEclipse后无法进行server deploy操作。这是由于MyEclipse不识别这个工程为web工程。在网上找到解决方法,通过Add Web Project Capabilities操作解决。整个方案如下
- 解决MyEclipse下引入的工程无法进行server deploy
- 这里提到的无法进行server deploy是指在MyEclipse的Server Deployments界面的工程列表中没有出现新导入的工程。
- 1、先看看该工程根目录下是否有.mymetadata这个文件。出现该问题一般都是工程导入MyEclipse之后,MyEclipse不认该工程为web project,这个时候需要为新导入的项目执行“Add Web Project”的操作,执行的菜单路径“MyEclipse”-“Capabilities”-“Add Web Project Capabilities...”。
- 如果不能执行该操作,则需要在Add Web Project Capabilities界面中,把两个复选框的勾都去掉(create web.xml以及增加j2EE的lib路径到classpath),然后就可以执行了。
- 实际上工程导入MyEclipse,一般MyEclipse会认出工程是web工程,从而自动创建.mymetadata的。当然如果无法自动创建,就按上面的办法处理。
- 2、有了.mymetadata文件,在执行部署的时候,仍不能成功。
- 项目终于可以在Tomcat下Deploy了。但是还是有问题,Deploy的项目有点不对劲。这是因为MyEclipse默认的Web-Root路径是WebRoot而在Eclipse下是WebContent的原因。打开.mymetadata的文件,可以看到如下内容:
- <?xml version="1.0" encoding="UTF-8"?>
- <project-module
- type="WEB"
- name="test"
- id="myeclipse.1173497999562"
- context-root="/test"
- j2ee-spec="1.4"
- archive="test.war">
- <attributes>
- <attribute name="webrootdir" value="web-root" />
- </attributes>
- </project-module>
- 把web-root改为工程定义的web root dir名称即可,一般为"webapp"。改完之后如果还不能直接发布,重启下MyEclipse就行了。
- 还有一种办法是在MyEclipse创建一个临时web Project,把里面的.mymetadata拷给部署有问题的工程用就可以了,当然里面的内容要修改一下。临时的web project记得删除掉。