Maven 实战

1. Maven是一个项目管理工具,基于java,跨平台,这样不用再一步一步手工操作,而且项目在不同机器上都可以运行

2. Maven是声明式的,项目构建过程和过程各个阶段所需的工作都由插件实现

3. 解决项目依赖jar包的版本错误以及版本冲突问题

4. 配置时:系统变量(M2_HOME)为Maven的安装目录,Path为在cmd输入maven命令时,windows会在该目录下找可执行文件或脚本,找不到遍历Path中定义的路径。其应配置在bin文件夹路径,bin目录包含了maven运行的脚本

5. maven安装目录: bin目录包含了maven运行的脚本; conf中的settings.xml可以全局上定义maven的行为; lib包含了所有Maven运行时所需要的java类库

6. 在用户目录下的 .m2文件夹,所有的maven构件都被存储到该仓库中

7. 设置HTTP代理:基于安全考虑,要求使用通过安全认证的代理访问因特网,这样需要在settings.xml的配置proxy,才能让它正常的访问外部仓库,下载所需的资源。多个proxy默认第一个被激活

8. POM.xml: Maven的核心是pom.xml,其定义了项目的基本信息,用于描述项目如何构建,声明项目依赖。POM与java代码分开,解耦

    a. dependencies: 用dependency声明一个或多个项目依赖,依赖范围---编译测试运行(complie/test/provide)

    b. groupId/artifactId/version: 是任何一个Maven构件(jar/war)最基本的坐标,指定唯一一个Maven项目

    c. scope表示依赖范围,默认是conpile,表示对主代码测试代码都有效

9. clean告诉Maven清理输出目录target/, compile告诉Maven变异项目主代码,放在target/classes目录中, install 将项目输出的jar安装到Maven本地仓库中,只有构建被下载到本地仓库后,才能由所有Maven项目使用

10. mvn clean install: Maven会根据POM配置自动下载所需要的依赖构件,执行编译,测试,打包等工作,最后将项目生成的构件安装到本地仓库中 

11. Maven约定: 在项目的根目录中放置pom.xml, 在src/main/java目录中放置项目的主代码,在src/test/java中放置项目的测试代码

12.传递依赖:版本由依赖路径长度最近的确定;如果依赖路径长度相等,那么第一声明者优先。 范围也会传递,见表

13. 仓库: Maven统一存储所有Maven项目共享的构件。为了实现重用项目构建完毕后生成的构件也可以安装或者部署到仓库中,供其他项目使用。

14. 仓库分类:Maven分为本地仓库和远程仓库。当Maven根据坐标寻找构件时,先查看本地仓库,如果本地仓库有此构件,则直接使用;如果本地仓库不存在此构件,则去远程仓库查找,如果有,下载到本地仓库使用,没有,Maven报错

15.对于Maven而言,每个用户只能有一个本地仓库,但可以有多个远程仓库<repositories>内可以有多个<repository>

16.Maven的生命周期是抽象的,其实际行为都由插件来完成,插件以独立构件形式存在。可以自己绑定插件<build><plugins><plugin>指定插件名以及阶段

17.Maven的生命周期包含:项目清理,初始化,编译,测试,打包,集成测试,验证,部署和站点生成

18.Maven生命周期分成三块clean default site. 每快包含一些阶段,这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段。用户调用该阶段时,会触发该生命周期块内该阶段之前的所有阶段,但对于别的生命周期快没有影响

19.聚合: 一次构建两个或多个项目而不是到两个模块的目录下分别执行mvn命令。<modules>下可跟多个<module>

20.继承: 程序员可以建立一种pom的父子结构,然后再父pom中声明一些字段和方法供子类继承,这样就可以做到“一处声明,多处使用”。<parent>

21.构建顺序:Maven按顺序读取POM,如果该POM没有依赖模块,那么就构建该模块,否则就先构建其依赖模块,如果该依赖还依赖于其他模块,则进一步先构建依赖的依赖。

22.Hudson:集成主流的构件工具,版本控制系统以及自动化测试框架都能进行很好的集成

23.基于Java的Web应用,其标准的打包方式是WAR。WAR与JAR类似,只不过它可以包含更多的内容,如JSP文件,Servlet,java类,web.xml配置文件,依赖JAR包,静态web资源(HTML,CSS,JS文件)等

24.一个WAR包下至少有两个子目录:META-INF和WEB-INF。前者包含了一些打包元数据信息,后者是WAR包的核心,WEB-INF下必须有一个Web资源表述文件web.xml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值