相同点:都是项目构建管理工具。
不同点有:
1. Maven约定了目录结构,而Ant没有。
2. Maven是申明式的,用pom.xml文件;而Ant是程序式的,构建过程需要自定义,用builder.xml.
3. Maven是有生命周期的,而Ant没有。
4. Maven内置依赖管理和Repository来实现依赖的管理和统一存储;而Ant没有。Maven第一次install的时候会把依赖的jar包和构件从远处库(又叫中央库,http://repol.maven.org/maven2,统一存储maven可以解释的文件资源)下载到本地库(先从本地仓库找)。Maven还可以管理传递依赖。
5.Maven配置比较简单,有很多的约定、规范、标准,可以用较少的代码干更多的事;而Ant配置比较麻烦,需要配置整个构建的过程(但Ant配置灵活)。
===================================================================================
===================================================================================
MAVEN的生命周期:
1. process resource:
2. compile: 输出到target/classes
3. test:
4. install: 复制工作环境的资源 到 本地仓库
5. deploy:复制本地仓库的资源 到 远程仓库
===================================================================================
===================================================================================
MAVEN profile:1. 作用:提高项目构建的可移植性,使之在不同的环境有不同的行为和配置。
2. 可配置激活条件 activation
3. 外部独立的profile.xml 用户独特的C:\Users\Administrator\.m2/setting.xml/ 全局的apache-maven-3.3.9\conf\setting.xml
用户独特的:保存一些用户私密的不想泄露的信息
全局的:保存一些所有用户共享的信息
===================================================================================
===================================================================================
MAVEN Assembly(套件):
1. 作用:灵活的构建任意类型的自定义归档文件。
2. 怎么控制套件的内容? fileSets dependencySets moduleSets
===================================================================================
===================================================================================
MAVEN属性有:maven项目的属性(project.version / project.artifactId)、Settings属性、环境变量的属性(env.HOME/ env.PATH)、Java系统的属性(java.home/java.version)和自定义的属性(如POM.xml中定义的)。MAVEN资源过滤:过滤和解析工程中用到的maven属性。
===================================================================================
===================================================================================
MAVEN NEXUS1. 作用:本质是一个仓库管理器,是一个介于远程maven仓库和本地仓库之间的代理,可以部署组织内部生成的构件。用作maven私服,统一存储和管理依赖的构件,不需要反复地去中央仓库和第三方重新下载。这样的话,既减轻了了仓库的压力,同时也节省了时间和带宽。在只有内网的情况也能使用。
===================================================================================
===================================================================================
MAVEN编写插件1. maven的核心是Plexus,它是一个IOC框架。
2. 插件包括插件描述符和Mojo(对应maven中的一个目标)。
3. Mojo可以设置参数,插件可以自定义生命周期。
===================================================================================
===================================================================================
MAVEN 还可以站点生成,定制站点样式(包括自定义模板)。