Maven使用常见问题整理


1、更新eclipse的classpath加入新依赖 
 
1、在dependencyManagement里面加入包括版本在内的依赖信息,如:   <dependency>    <groupId>joda-time</groupId>    <artifactId>joda-time</artifactId>    
<version>1.6.2</version> 
  
</dependency> 
 
2、在同级的dependencies节点里面加入该依赖,如:   <dependency>    <groupId>joda-time</groupId>    
<artifactId>joda-time</artifactId> 
  
</dependency> 
 
3、使用mvn eclipse:clean删除当前的工程配置文件,并用mvn eclipse:eclipse重新生成。  

4、导入或刷新该eclipse工程。  


2、工程配置未使用pom.xml更新 
问题:Project configuration is not up-to-date with pom.xml  
导入maven工程后,出现如下错误: 
Description    Resource    Path    Location    Type 
Project configuration is not up-to-date with pom.xml. Run project configuration update    rdc        line 1    Maven Configuration Problem  
解决办法就是: 
右键项目,【Maven】--》【Update Project Configuration...】即可。。。  



3、如何修改默认GBK的资源过滤 
Using platform encoding (GBK actually) to copy filtered resources  
需要指定字符集: <plugin>  <groupId>org.apache.maven.plugins</groupId>  <artifactId>maven-resources-plugin</artifactId>  <version>2.2</version>  <configuration>   
<encoding>UTF-8</encoding>  </configuration> 
</plugin> 
  
4、不支持范型的JDK版本问题 
 
maven打包时始终出现TripApplyAction.java:[267,6]-source 1.3中不支持泛型(请使用-source 5或更高版本以启用泛型)Map<String, Object> map = new HashMap<String, Object>();  
解决方法,指定JDK版本:  
在pom.xml文件中加入下一面一段语句来指定所用的版本,尽管在eclipse中配置了正确的“Build Path”: <build> <plugins> <plugin> 
<artifactId>maven-compiler-plugin</artifactId> <configuration> <target>1.5</target> <source>1.5</source> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build>  
重新运行mvn clean eclipse:eclipse -Dmaven.test.skip=true,接着mvn package,问题解决。 
 


5、如何在使用命令方式下载依赖的同时下载源码 
 
1. 使用maven命令:mvn dependency:sources 下载依赖包的源代码。  
2. 使用参数: -DdownloadSources=true 下载源代码jar。 -DdownloadJavadocs=true 下载javadoc包。   
6、maven打包,忽略test的参数 
 
mvn -Dmaven.test.failure.ignore=true package mvn -Dmaven.test.skip=true clean package   
7、web.xml which will be ignored 
 
 
[WARNING] Warning: selected war files include a WEB-INF/web.xml which will be ignored (webxml attribute is missing from war task, or ignoreWebxml attribute is specified as 'true')   
在使用Maven 编译项目的时候会出现  
[WARNING] Warning: selected war files include a WEB-INF/web.xml which will be ignored  
解决方法:  
<plugin> 
<groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <configuration> 
<!-- http://maven.apache.org/plugins/maven-war-plugin/ --> <packagingExcludes>WEB-INF/web.xml</packagingExcludes> </configuration> </plugin> 
 


9、Maven3.04暂时不支持Servlet3的无web.xml形式 
 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.1.1:war 

(default-war) on project prospringmvc01: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) ->

10.   The container 'Maven Dependencies' references non existing library 'E:\m2e\repository\org\apache\httpcomponents\httpclient\4.5.2\httpclient-4.5.2.jar'

       在更新依赖包是由于网络问题没有更新成功经常会出现依赖包找不到的问题,此时通过浏览器去私服页面查看,发现依赖包坐标是存在的,对应的文件(比如jar文件). 或者私服上面也找不到文件,但是引入的中央仓库或者其他公服上面有文件.

 解决方案

上面问题往往是在下载依赖过程中网络出现问题导致的.

此时我们本机已经开始下载依赖代码,但是下载失败,本机仓库中会在${MAVEN_repo}/${groupid}/${artifactid}/${version} 路径下面生成 *.lastUpdated 的文件.

*.lastUpdated实在可恶,下次再下载时由于它的存在Maven不会再去私服中下载

解决方法:(针对PC与Maven私服之间网络传输问题)

  1. 打开本地仓库所在目录, 通过win文件夹的搜索功能,查找 *.lastUpdated ,然后将找到的文件全部删除

  2. 重新 Maven Update Project,

    1. 若在eclipse中操作时勾选上 Force Update of Snapshots / Releases

    2. 若在命令行操作时增加 -U 参数


参考:http://wenku.baidu.com/view/4fd678cd2cc58bd63186bdcd.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值