今天整理一个从别处COPY的项目时,用Eclipse导入工程后工程上有个红叉叉,但工程里没有文件错误,也没有语法错误,百思不得其解啊,后来在网上找了一些资料说是项目引用的类库路径有问题。【项目】-->【右键】-->【build path】-->【configure build path】-->【libraries】,查看一下引用的类库路径。网上都说是因为这里引用错误引起的,但是我在项目导入的时候做的第一件事情就是修改这里的library,因此不是这个原因。Problems视图中提示"Target runtime Apache Tomcat v7.0 is not defined.",最后Google了一下说要修改这个文件:工作空间-->项目名称-->.settings-->org.eclipse.wst.common.project.facet.core.xml
源文件内容为:
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="Apache Tomcat v7.0"/>
<fixed facet="jst.web"/>
<fixed facet="java"/>
<fixed facet="wst.jsdt.web"/>
<installed facet="java" version="1.7"/>
<installed facet="jst.web" version="3.0"/>
<installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>
将runtime标签的name值删除后,试了下,可以,红叉叉没了,这下心里舒服了。进行上面的修改以后虽然没有错误了,但是想发布网站的时候发现没有【run as】->【run on server】这个选项了。这时候我们将runtime标签的name值修改为Apache Tomcat v6.0后,我们在Eclipse就能够使用【run as】->【run on server】来发布网站了。
小结:从别处copy源代码,包括eclipse等的配置。这样源代码里面包含了其它人的project配置。如项目检出后,发现是Tomcat7 发布的。同样的情况也可能出现在JDK的版本上,有可能你自己电脑上用JDK6,其它人的电脑用JDK5,这个时候要修改JDK,要在工程上点击右键--------->Project Facets------->勾选JAVA--------->选择6.0
参考文献:
1、http://blog.csdn.net/zhang854429783/article/details/6783819
2、http://blog.csdn.net/xw13106209/article/details/5910358
3、http://blog.csdn.net/damaolly/article/details/38321481
4、http://always-missing.iteye.com/blog/852969