Maven学习小结

来源:互联网 发布:淘宝买高仿手表知乎 编辑:程序博客网 时间:2024/05/29 07:52

按照我不标准的理解,Maven主要是有以下4个作用

1、构建标准工程

2、在不同的工程间共享jar包

3、自动化测试

4、简易发布工程信息


关于1,用maven创建的项目的项目目录都是一样的,当然模板是可选的。因为这是maven约定好的。所谓的”约定优于配置“。

关于3,只要一运行mvn test命令,../test目录下的单元测试会全部都执行,完成自动化测试

关于4,命令行进入到你项目的pom.xml文件所在的目录下,执行mvn:site。maven会在你项目对应的target目录下创建一个site目录。该目录下包含一堆的html。主要是介绍你这个项目的信息。

关于2,这应该是Maven用得最多的,大一点的公司开发的项目一般都比较大,所以要求要分工明确。但是这样一来就会有个问题,就是每个开发人员是不是都得把项目里面用到的所有官方的jar包都下载到本地?而且一般大的公司都会开发自己的框架,那每个开发人员是不是也得把框架都下载到自己的本地?更致命的是,公司在开发的过程中有可能要升级自己的框架,我靠,那每次升级一下所有的程序员都得要重新下载一下,重新build path一下。如果一下项目有几百人在开发的话那就很恐怖了。还有一种情况就是,如果A开发了一个JAR包,B想引用这个JAR。虽然A已经把这个JAR包上传到svn但是B不知道啊。那么B是不是要求问一下A”你上传了没有?还有,你这个JAR包需要支持哪些官方的JAR包“。问完了以后还要更新一下,然后惊心胆颤的看一下能不能引用成功。

以上只是说明一下用maven的原因。当然,如果只有一两个人做开发,那就没有必要用maven了。

讲到maven就不得不讲一下他的库了。maven有自己的一个官方库,一般公司会在配置一个自己的内部远程库(也叫私服),程序员自己电脑上也会被maven创建一个本地的库。

官方库和内部远程库的关系是,可以再安装内部远程库的时候指定要从官方库中搞哪些东西到自己的库中。我一般用nexus来创建自己的内部远程库。安装很简单。百度一下随便找个教程就行了。

本地库和内部远程库的关系是,当程序敲完命令后,maven会先在本地库里找一下有没有需要的依赖,如果有的话,就直接用本地的依赖,如果没有就去内部远程库里面搜。

其中私服仓库是可选的,如果没有 配置私有仓库,则本地仓库找不到jar包时则直接向中央仓库下载。项目中使用私有仓库的配置如下,可以在Maven的setting.xml和项目的pom.xml中配置均可



工作中一般都会几个项目互相引用已达到代码复用,例如项目A要引用项目B,则项目A的pom.xml中的获取B的的配置其实与普通jar包无异,只要配置正确的坐标即可。


学习的时候有个奇怪的问题,是这样的,项目A引用了项目B,eclipse编译明明是通过的,可是用mvn package命令给项目A打包的时候,竟然编译失败,原因是有的jar包不存在。解决办法是先在Eclipse的project选项clean一下先,然后重新执行mvn package命令,成功,网上给出的解析是Maven编译检查格式过严造成的。


这只是本人的简单总结,如有错误的地方请大家留言交流,又不好的地方请勿喷,大家一起进步。




0 0