一篇文章认识Maven
1.什么是MavenMaven 是一个项目管理工具,它包含了一个项目对象模 型 (POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管 理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标 (goal)的逻辑。2.Maven 的两个精典作用2.1 Maven 的依赖管理Maven 的一个核心特性就是依赖管理。当我们涉及到多模块的项目(包含成百个模块或者子项目),管理依赖就变成 一项困难的任务。Maven 展示出了它对处理这种情形的高度控制。传统的 WEB 项目中,我们必须将工程所依赖的 jar 包复制到工程中,导致了工程的变得很大。那么 maven 工程是如何使得工程变得很少呢?如下:
项目对象模型(Project Object Model)每个maven工程中都有一个pom.xml文件(核心配置文件),通过pom.xml文件可以定义项目的坐标、项目依赖、项目信息以及插件目标等。例如,有下面这样一个pom.xml文件,你可以清楚地看到该文件里面定义了工程所依赖的jar包、本工程的坐标以及打包运行方式等。
依赖管理系统(Dependency Management System)maven的基础核心,通过maven的依赖管理对项目所依赖的jar包进行统一规范的管理。例如,项目依赖Struts2.3.24,通过在pom.xml文件中定义其依赖即可将Struts2的jar包自动加入到工程中,如下所示便是Struts2.3.24的依赖定义。<dependency><groundId>org.apache.struts</groundId><artifactId>struts2-core</artifactId><version>2.3.24</version></dependency>2.2 项目的一键构建我们的项目,往往都要经历编译、测试、运行、打包、安装 ,部署等一系列过程。什么是构建?指的是项目从编译、测试、运行、打包、安装 ,部署整个过程都交给 maven 进行管理,这个 过程称为构建。一键构建 指的是整个构建过程,使用 maven 一个命令可以轻松完成整个工作。3.Maven 常用命令3.1 compilecompile 是 maven 工程的编译命令,作用是将 src/main/java 下的文件编译为 class 文件输出到 target 目录下。3.2 testtest 是 maven 工程的测试命令 mvn test,会执行 src/test/java 下的单元测试类。3.3 cleanclean 是 maven 工程的清理命令,执行 clean 会删除 target 目录及内容。3.4 packagepackage 是 maven 工程的打包命令,对于 java 工程执行 package 打成 jar 包,对于 web 工程打成 war 包3.5 installinstall 是 maven 工程的安装命令,执行 install 将 maven 打成 jar 包或 war 包发布到本地仓库。从运行结果中,可以看出:当后面的命令执行时,前面的操作过程也都会自动执行4.Maven 仓库本地仓库 :用来存储从远程仓库或中央仓库下载的插件和 jar 包,项目使用一些插件或 jar 包, 优先从本地仓库查找 默认本地仓库位置在 ${user.dir}/.m2/repository,${user.dir}表示 windows 用户目录。远程仓库:如果本地需要插件或者 jar 包,本地仓库没有,默认去远程仓库下载。远程仓库可以在互联网内也可以在局域网内。中央仓库 :在 maven 软件中内置一个远程仓库地址http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它是由 Maven 团队自己维护,里面存储了非常全的 jar 包,它包 含了世界上大部分流行的开源项目构件。微信号 : TestOps知乎:@TestOps云层