maven 常见错误解决方法
1. 最重要的一点,使用国内镜像,比如 oschina.net 的镜像;
搜 jar 推荐:http://maven.outofmemory.cn/,速度极快。
2. 错误:Could not resolve artifact org.apache.maven.archetypes:maven-archetype-quickstart:pom:RELEASE
eclipse 建立 maven-archetype-quickstart 类型的 maven 项目报上面的错误,原因是没有该 type 对应的 jar 包,又无法下载。
解决方法:
1> 从http://maven.oschina.net/content/groups/public/org/apache/maven/archetypes/maven-archetype-quickstart/
下载最新版maven-archetype-quickstart-1.1.jar
2> 到下载目录下执行进行安装:
mvn install:install-file -DgroupId=org.apache.maven.archetypes -DartifactId=maven-archetype-quickstart -Dversion=1.1 -Dpackaging=jar -Dfile=maven-archetype-quickstart-1.1.jar
D:\java_libs>mvn install:install-file -DgroupId=org.apache.maven.archetypes -DartifactId=maven-archetype-quickstart -Dversion=1.1 -Dpackaging=jar -Dfi le=maven-archetype-quickstart-1.1.jar [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Maven Stub Project (No POM) 1 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-install-plugin:2.4:install-file (default-cli) @ standalone-pom --- [INFO] Installing D:\java_libs\maven-archetype-quickstart-1.1.jar to D:\java_libs\repository\org\apache\maven\archetypes\maven-archetype-quickstart\1. 1\maven-archetype-quickstart-1.1.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.937 s [INFO] Finished at: 2015-12-09T14:31:45+08:00 [INFO] Final Memory: 5M/15M [INFO] ------------------------------------------------------------------------
3. 错误:某个 jar 包始终无法下载成功
比如 netty-all 包,在 reposity目录D:\java_libs\repository\io\netty\netty-all\4.0.33.Final 中只有一个.lastUpdated为后缀的文件。
这是因为,maven在下载仓库中找不到相应资源时,会生成一个.lastUpdated为后缀的文件。如果这个文件存在,那么即使换一个有资源的仓库后,Maven依然不会去下载新资源。
我们可以将其删除掉,然后保存下pom.xml 文件,让他重新下载。如果还是不行,那么可以手动下载 netty-all-4.0.33.Final.jar 包,放入:
D:\java_libs\repository\io\netty\netty-all\4.0.33.Final\
在保存pom.xml 文件,就可以了:
4. 如果想尽了各种办法,就是无法利用 maven 使用 某个 jar 包,比如我最近无论如何都无法利用maven引入依赖:
1
2
3
4
5
|
< dependency > < groupId >org.eclipse.jetty.npn</ groupId > < artifactId >npn-api</ artifactId > < version >8.1.2.v20120308</ version > </ dependency > |
那只好 到 http://maven.outofmemory.cn/ 手动下载 jar 包,然后在项目中建立一个 文件夹,比如 lib, 然后将下载的 jar 包复制进去,然后 ' add to bild puth' 就行了。
5.
解决方法:
在本地的Maven repository下找到这plugin,然后删除之。然后在Maven update,搞定。
4. java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
项目启动报错:java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
但是查看 maven 依赖,spring-web 确实已经被maven引入进来了。那么问题不是出在maven身上,查看tomcat目录下的发现lib目录没有jar包,是空的。
所以原因是, eclipse 在 部署时,没有将 maven 引入 的 jar 被发布到 tomcat 中,所以是 eclipse 的问题,解决方法:
项目右键 ---> Properties ----> 选择 Deployment Assembly:
这里列出了 eclipse 是如何进行项目发布的:
如果 这里 没有 最后一项,那么解决方法是: 点击 Add... ---> Java Build Path Entries ---> Next ---> 选择 Maven Dependencies
----> Finish --> Ok 。搞定
原理就是将 maven 引入的 jar 包也加入到 项目部署中来。