最近,对现有的Web项目添加Maven支持,结果出现了好多的bug,只好google查找原因,在此记录下,给自己和他人一个方便:
1、Maven命令执行失败,却没有出错信息 -->
可重新执行一次!
2、 非法字符:\65279
解决方法:http://blog.csdn.net/wangjunjun2008/article/details/44060903
3、非法的表达式开始
解决方法:http://blog.csdn.net/wangjunjun2008/article/details/44060963
4、BaseAction.java:[4,35] 找不到符号 -->
很有可能是源码路径漏掉导致,添加对应的源码路径即可。如下图:
5、MyEclipse创建Maven工程报错:Could not resolve archetype org.apache.maven.archetypes
Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart:RELEASE from any of the configured repositories. Could not resolve artifact Missing org.apache.maven.archetypes:maven-archetype-quickstart:pom:RELEASE
-->
1. 从 http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/maven/archetypes/maven-archetype-quickstart/
下载最新版 maven-archetype-quickstart-1.1.jar
2.cmd 窗口执行 mvn install:install-file -DgroupId=org.apache.maven.archetypes -DartifactId=maven-archetype-quickstart -Dversion=1.1 -Dpackaging=jar -Dfile=d:\down\maven-archetype-quickstart-1.1.jar
红色字体是你jar包放在的位置。
6、项目添加Maven支持后,JUnit单元测试失败 -->
项目使用Maven调用junit单元测试,和单独使用junit进行单元测试,测试代码路径不同;为了能在Maven支持的项目中单独使用JUnit单元测试,需要显式声明 <testOutputDirectory> 标签,其内容为:
<outputDirectory>${basedir}/WebRoot/WEB-INF/classes</outputDirectory>
PS:
还有些比较诡异的bug,分析不出原因,只能将解决方法列出(经过自己验证通过,也许还有其他更好的解决方案,希望大家不吝赐教):
7、pom文件本身报错,提示parent pom文件过时: -->
a-- 关闭 pom.xml 文件,重新打开;
b-- 强制更新 clean -U(使用参数 U, 强制更新);
c-- 任意修改一下pom.xml 文件(不能改动文件内容)保存。
8、项目本身没问题,pom.xml 文件也没问题,但是部署失败:-->
a-- 将项目下的 WebRoot/WEB-INF/lib 文件夹删除(原项目中的jar包会产生影响)
b-- 重新部署(但是必须先将项目从服务器下删除!!!),如下图: