一、Maven
1.1Maven是什么
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。
概括地说,Maven简化和标准化项目建设过程。处理编译,分配,文档,团队协作和其他任务的无缝连接。 Maven增加可重用性并负责建立相关的任务。
Maven的核心功能便是合理叙述项目间的依赖关系,通俗点讲,就是通过pom.xml文件的配置获取jar包。
1.2 Maven 和 Ant 的差异
Maven 和 Ant 针对构建问题的两个不同方面。Ant 为 Java 技术开发项目提供跨平台构建任务。Maven 本身描述项目的高级方面,它从 Ant 借用了绝大多数构建任务。
1.3 优势以及特点
1 约定优于配置 (Convention over configuration) 2简单 3测试支持 4 构建简单 5 CI 6 插件丰富
1.4 安装和使用
a) https://maven.apache.org/download.cgi 直接解压
bin目录 :命令 boot:Class loader 类加载器 :conf目录:所有配置的setting.xml
超级pom.xml目录:D:Develop softwareapache-tomcat-7.0.52apache-maven-3.5.4libmaven-model-builder-3.5.4.jarorgapachemavenmodel
环境配置:MAV_HOME
- Windows path
- Linux .bash_profile
1.5 Maven原理
用户请求————>./(用户目录下的)m2/setting.xml ——————>config/.m2/setting.xml
maven在IDEA里配置:setting/maven 配置运行的setting.xml和D:Develop softwareapache-tomcat-7.0.52maven-repository下载Jar包目录。
setting.xml常用里面标签的含义(可以自己配setting)
1 <localRepository> jar包下载路径
2 <pluginGroups> 插件配置的运行
3 <proxies> 加相应的代理
4 <servers> 配置登录名密码
5 <mirrors> 配置镜像下载。分享一个快速的阿里云的配置
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> <mirror> <id>ui</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://uk.maven.org/maven2/</url> </mirror> <mirror> <id>osc</id> <mirrorOf>central</mirrorOf> <url>http://maven.oschina.net/content/groups/public/</url> </mirror> <mirror> <id>osc_thirdparty</id> <mirrorOf>thirdparty</mirrorOf> <url>http://maven.oschina.net/content/repositories/thirdparty/</url> </mirror>
仓库加载顺序:
1、本地配置:$MAVEN_HOME/conf/setting.xml。存储位置:D:javamaven epository
2、第三方仓库:又称为内部中心仓库,也称为私服,一般由公司建立。
注意:连接私服,需要单独配置。如果没有配置私服,默认不使用
3、中央仓库: Maven内置了远程公用仓库:http://repo1.maven.org/maven2
6 <profiles> 多个环境切换配置
pom.xml 常用里面标签的含义
a) pom.xml
- groupId com.gupaoedu 唯一标识
- artfactId 功能命名
- version 版本号
- packaging 打包方式 默认是jar
dependencyManagemen
<properties> 变量(内置)
dependencyMangement 只出现在主pom,统一版本号,声明和
dependency Type 默认jar,
scope下的子标签
a) compile 编译 例如spring-core
b) test 测试
c) provided编译 例如 servlet
d) runtime运行时 例如JDBC驱动实现
e) system 本地一些jar 例如短信jar
f) 依赖传递
第一列表示直接依赖的scope,第一行表示间接依赖的scope
1.6 生命周期
lifecycle生命周期/phase阶段/goal
1.clean 里有pre-clean,clean目标,post-clean
2 default 常见的有compile,package ,install ,depoly......
3 site 里有 pre-site,site,post-site,site-deploy
- A Build Lifecycle is Made Up of Phases(构建生命周期由多个阶段组成)
- A Build Phase is Made Up of Plugin Goals(构建阶段由插件目标组成)
如下图所示