安装与配置windows版maven(前提:先安装jdk):
1.到http://maven.apache.org下载最新maven3.1.1并解压到D盘,并将解压目录改名为maven3
2.修改D:\maven3\bin\mvn.bat,看脚本,在设置java.exe前设置JAVA_HOME(找到位置加上:set JAVA_HOME=d:\jdk7)
3.打开命令窗口,输入d:\maven3\bin\mvn --version,就可以看到maven信息.
4.输入d:\maven3\bin\mvn help:system,就可以看到下载相关东东到库.默认的库位置在当前用户主目录的.m2目录,按ctrl+c可以终止下载.
5.更改本地库到e:/repository,在默认的库位置所在目录C:\Users\
生成项目:
d:\maven3\bin\mvn archetype:generate -DinteractiveMode=false -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=com.test -DartifactId=testjava -Dversion=1.0-SNAPSHOT
d:\maven3\bin\mvn archetype:generate -DinteractiveMode=false -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=com.test -DartifactId=testweb -Dversion=1.0-SNAPSHOT
常见错误:
一..在Eclipse导入已存在工作空间的项目,出现
情况1:
Scanning errors (1):
1 Could not read pom.xml
就是pom.xml出现了不能解析的配置,把不能解析的配置修改过来.例如去掉
情况2:
No marketplace entries found to handle maven-compiler-plugin:2.3.2:testCompile in Eclipse.
将Eclipse内置的Maven换成外部自己安装的Maven,重启Eclipse.然后,在命令行执行mvn clean install再导入项目.
二.导入项目后出现:
情况1:
Project configuration is not up-to-date with pom.xml. Run Maven->Update Project or use Quick Fix.
在Problems View的出错提示右键选Quick Fix,再按提示确定就OK.或者,右键项目->Maven->Update Project
情况2:
JavaServer Faces 2.2 can not be installed : One or more constraints have not been satisfied.
JavaServer Faces 2.2 requires Dynamic Web Module 2.5 or newer.
先改web.xmlwebapp节点:
然后关闭Eclipse,改项目下的.settings\org.eclipse.wst.common.project.facet.core.xml.将版本改成为3.1,将成后是
三.
在CLI(command-line interface)运行命令,此种情况拒绝使用Eclipse来执行命令(当然你测试打包入去没影响)
四.启动tomcat报错:java.util.zip.ZipException: invalid LOC header (bad signature),
启动jetty报错: java.util.zip.ZipException: invalid distance too far back
以上两种错:一般是一个或多个下载的jar不完整.在eclipse的下载经常出现.而直接在cmd好像不会出错....
tomcat\会提示是那些类...就可推是那个jar.但jetty可能不会指出是那个jar.按常理都是调用外部的maven,并且下载后做文件指纹校验的.真的不明白会有这样的情况.
先用idea一段时间看看...至少eclipse4.3遇到两次了.我都清一次库了,抓狂啊.啊..啊....
对于抛出的异常还是找不到下载不完整的jar,我就写了一个工具.在文末我会贴上.
上传jar到maven库例子.
d:\maven\bin\mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar -Dfile=ojdbc14-10.2.0.4.0.jar
maven的5种scope对于3种class是否有效:
左边为第一直接依赖,上边为第二直接依赖,则对应的依赖传递如下:
1.路径最近者优先
2.路径长度相同,解析依赖声明靠前优先
找出maven下载出错的文件工具类(我170多M左右的maven库,一分钟左右就检查完毕,最终确实有几个下载不完整的文件)