前言

    我们在开发的工程中很多都是Maven项目,这样更加便于我们jar包的管理。而我们一般使用的IDE都是Eclipse,由于我们在日常的开发过程中会经常要用到一些Maven的操作,所以我今天主要跟大家分享一下我们在日常开发中的Maven实用小知识,让大家不再云里雾里。
 

安装配置Maven

 
    1.安装Maven,下载一个maven包解压,然后配置maven环境变量(配置完成后在dos窗口用mvn命令测试下)。
 
    2.在Eclipse中安装Maven插件,Maven插件在线安装地址为:http://m2eclipse.sonatype.org/sites/m2e
 
    3.在Eclipse中配置Maven的setting.xml,即在Preference——》Maven——》User Setting中配置(具体使用哪个setting.xml需要根据你的项目情况而定)。
 
    4.拷贝repository包,虽然这个不是必须的,一般通过项目在线更新jar包就可以,但是如果第一次的话最好是拷贝,因为一般项目都会比较大,jar包也会很多很多,在线下载的话会很慢。
        

引入和安装Maven项目

 
    如果第一步操作成功的话,你就可以在import窗口里面看到Maven的选项了,选择Import a exsiting Maven project 就行,前提是你先把Maven项目从版本库中down下来。
 
    如果你引入的这个项目A被别的Maven项目B引用了,那么我们最好是让项目B直接使用本地的项目A,而不是从repository中寻找对应项目A的jar包。这样会避免jar包更新出问题(比如项目A经常更新,jar包可能会更新不及时)。这样的话我们就需要将我们的项目A install到本地,install有两种方法:
        
    1.右键项目选择Maven菜单的install即可。
 
    2.使用命令,即将目录转换到该项目目录下,然后执行mvn clean install -Dmaven.test.skip=true即可。(推荐该方法,因为跳过了测试)    
        

更新jar包

 
   更新Maven的jar包应该是对于Maven项目最常用的操作了(因为项目一直在更新,那么jar包肯定也一直在变)。
 
   那么对于更新Maven的jar包的方法是:右键项目选择Maven菜单下的update project,然后在弹出框中有一个offline的选项,一般情况我们直接勾选offline(这样它之更新本地的jar包,比如上面提到的项目A的更改会更新,offline的速度很快);当然如果offline不行的话就需要取消对offline的勾选,即在线更新jar包,这样它会从远程服务器中下载最新的jar包。
 

常见小问题

 
   虽然在上面的几个步骤中看起来很简单,但是由于我们的maven插件不太好用,所以也会经常出一些小问题。
 
   1.install项目失败
 
   这个情况一般会发生在使用右键项目install的方法,因为它有一个test的过程,所以有时候会test失败,这时候我们只需要换成第二种使用install命令的方式就没问题了。
 
    2.更新jar包失败
 
    经常会有这样一个情况,明明都在线更新jar包了,可是jar包却还是很久以前的,然后在启动tomcat的时候总是会报ClassNotFound或者某个方法不存在的错误。
 
    对于这种情况我们最好是找到是哪个包,然后在repository中找到这个包删掉,之后再update那么这个包就会变成最新的了。
 
     3.项目莫名其妙的启动不了
 
     有时候我明明都在线更新了jar包,然后还clean项目了,但是就是启动失败,仔细一瞧,problems窗口中有错误提示,有什么cycle引用,这时候一般是因为有引用本地安装的项目还有引用repository中jar包,所以可能是你repository中的jar包最新了但是你本地引用的项目没有更新,这时我的无忧做法是:
 
     将引用到的项目全部update(记得update完后修改jdk),然后clean,然后重新install(最好使用命令方式),最后再将你的项目update然后clean,基本就没有问题了。
 
  转自:http://blog.csdn.net/huaweitman/article/details/50676573

最新文章

  1. 那些年我们用过的Python代码
  2. 关于phpmyadmin的小笔记
  3. 【BZOJ-2299】向量 裴蜀定理 + 最大公约数
  4. 【转】phpcms-v9中关于模型的理解
  5. div box container随主体内容自动扩展适应的实现
  6. Cause for NullPointerException android.support.v7.widget.RecyclerView.onMeasure
  7. VMware + OpenStack: 从 Plugin 到 VIO (VMware Integrated OpenStack)的演进
  8. NOIP 2014 普及组 T4 子矩阵
  9. 跨平台轻量级redis、ssdb代理服务器(C++ 11编写)
  10. 典型的字符串处理代码(page50)
  11. WinForm应用程序退出的方法
  12. Specified VM install not found: type Standard VM, name jdk1.6.0_05
  13. 在线支付接口之PHP支付宝接口开发
  14. Linux系统bashshell之别名
  15. GlitchBot -HZNU寒假集训
  16. os.path 下的各方法
  17. Android : Android Studio 更新至gradle 4.10.1后Variants API变化
  18. java.lang.NoClassDefFoundError: org/hibernate/QueryTimeoutException
  19. spark 实现TOP N
  20. 拼接html a标签字符串,onClick传递两个字符串类型参数写法

热门文章

  1. 干货来袭-整套完整安全的API接口解决方案
  2. 测试一下StringBuffer和StringBuilder及字面常量拼接三种字符串的效率
  3. servlet文件下载
  4. 基于OpenCV的车辆检测与追踪的实现
  5. angular2系列教程(八)In-memory web api、HTTP服务、依赖注入、Observable
  6. 使用DeviceOne实现微信小程序功能
  7. Oracle 分页
  8. Linux监控工具介绍系列——OSWatcher Black Box
  9. IP报头
  10. ASP.NET Core "完整发布,自带运行时" 到jexus