相同点:都是项目构建管理工具。


不同点有:

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

allprojects maven和mavenCentral区别 maven和ant的区别_xml

3.  外部独立的profile.xml   用户独特的C:\Users\Administrator\.m2/setting.xml/          全局的apache-maven-3.3.9\conf\setting.xml

用户独特的:保存一些用户私密的不想泄露的信息

全局的:保存一些所有用户共享的信息



===================================================================================

===================================================================================

MAVEN Assembly(套件):

1. 作用:灵活的构建任意类型的自定义归档文件。

2.  怎么控制套件的内容?  fileSets dependencySets  moduleSets

allprojects maven和mavenCentral区别 maven和ant的区别_xml_02


===================================================================================

===================================================================================


MAVEN属性有:maven项目的属性(project.version / project.artifactId)、Settings属性、环境变量的属性(env.HOME/ env.PATH)、Java系统的属性(java.home/java.version)和自定义的属性(如POM.xml中定义的)。


MAVEN资源过滤:过滤和解析工程中用到的maven属性。

allprojects maven和mavenCentral区别 maven和ant的区别_xml_03



===================================================================================

===================================================================================


MAVEN NEXUS 


1.   作用:本质是一个仓库管理器,是一个介于远程maven仓库和本地仓库之间的代理,可以部署组织内部生成的构件。用作maven私服,统一存储和管理依赖的构件,不需要反复地去中央仓库和第三方重新下载。这样的话,既减轻了了仓库的压力,同时也节省了时间和带宽。在只有内网的情况也能使用。



===================================================================================

===================================================================================


MAVEN编写插件


1.  maven的核心是Plexus,它是一个IOC框架。

2. 插件包括插件描述符和Mojo(对应maven中的一个目标)。

3. Mojo可以设置参数,插件可以自定义生命周期。



===================================================================================

===================================================================================


MAVEN 还可以站点生成,定制站点样式(包括自定义模板)。