新的工作环境需要用maven,之前一直用ant,
学一个新东西之前首先需要看看新的比传统的先进在哪里。
下面是学习之前对maven的理解
maven和ant比较:
1.maven有一个中央构建仓库,在配置工程的时候只需要指定所依赖的第三方工具的名称,maven
将自动从中央仓库或本地仓库下载依赖的jar包,并且可以总动下载jar包所对应源码,和ant比起来最
吸引人的就是不需要再管lib库里头到底哪些jar有用,哪些没用;
2.maven的核心就是各种各样的插件,maven自己不做任何实际的事情,都是调用了自己所管理的插件
完成各种各样的事情,比如新手j上来就要接触到的archytype插件用来创建一个项目,help插件可以查看
其他插件的详细信息。在管理仓库中或社区中可以找到各种各样插件组合起来满足自己项目需求,因此想必ant
可以减少重复工作。
担忧:
一个插件相当于java中的一个类,插件前缀名相当类名,goal名相当方法名,命令行调用方式就是
prefix name:goal name,每个插件都有很多 不同的goal,再加上一些参数,需要记很多命令,会不会增加学习成本。
学习前先学概念:
1.maven的项目管理方式;
2.一个plugin由lifecycle, phase, goal, mojo这些基本概念组成;
3.maven安装设置;
4.maven有很多自带的plugin,比如编译,打包(jar,ear,war等),包签名,eclipse环境集成等,在官网上可以找到;
5.maven在构建一个项目的时候首先向本地仓库请求所依赖的资源,若不存在则向远程的中央仓库请求下载并缓存到本地,在settings.xml中可以配置中央仓库的镜像地址;刚才在使用命令 mvn help:describe -Dplugin=help 时由于是第一次使用,本地仓库没有help插件,maven向远程仓库请求文件,结果每次都请求失败,在命令中加了参数 -X,打印出详细信息,发现有异常:UnknownHostException:repo1.maven.org,同时google也上不去,猜可能是请求被伟大的长城防火墙给拦了,搬了个梯子,终于看到连接成功并开始下载依赖的包了,慢是慢了点。