1:什么是maven?
Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project’s build, reporting and documentation from a central piece of information.
是一个软件(特别是Java软件)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
这种又是大白话,如果没明白maven是什么,那么上面这句话跟没说一样,我自己觉得,Maven的核心功能便是合理叙述项目间的依赖关系,通俗点讲,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包,而这里pom.xml文件对于学了一点maven的人来说,就有些熟悉了,怎么通过pom.xml的配置就可以获取到jar包呢?pom.xml配置文件从何而来?等等类似问题我们需要搞清楚,如果需要使用pom.xml来获取jar包,那么首先该项目就必须为maven项目,maven项目可以这样去想,就是在java项目和web项目的上面包裹了一层maven,本质上java项目还是java项目,web项目还是web项目,但是包裹了maven之后,就可以使用maven提供的一些功能了(通过pom.xml添加jar包)。
所以,根据上一段的描述,我们最终的目的就是学会如何在pom.xml中配置获取到我们想要的jar包,在此之前我们就必须了解如何创建maven项目,maven项目的结构是怎样,与普通java,web项目的区别在哪里,还有如何配置pom.xml获取到对应的jar包等等,这里提前了解一下我们如何通过pom.xml文件获取到想要的jar的,具体后面会详细讲解该配置文件。
1.1它是—
①构建工具
构建工具是一个把源代码生成可执行应用程序的过程自动化的程序(例如Android app生成apk)。构建包括编译、连接跟把代码打包成可用的或可执行的形式。
基本上构建的自动化是编写或使一大部分任务自动执行的一个动作,而这些任务则是软件开发者的日常,像是:
1、下载依赖
2、将源代码编译成二进制代码
3、打包生成的二进制代码
4、进行单元测试
5、部署到生产系统
②依赖管理工具
…
③项目信息聚合工具
…
2:下载与安装
官网下载安装(地址),选择bin.zip的版本
解压到安装目录
path中加入maven安装目录下的bin目录路径
测试安装成功:cmd中执行mvn -v
修改配置文件,apache-maven-xxx\conf目录下的settings文件
(可选,默认在C盘的用户目录下)修改localRepository 为
(极速之选,不选龟速)修改mirrors,在标签下加入以下配置,启动阿里云的镜像
3:创建与简单运行
在cmd中运行下面的代码,第一次会从阿里云镜像下载很多架包(.jar)相关依赖包都会下载到仓库。后面会讲到仓库。
创建:mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=com.chinasofti.build -DartifactId=demo
运行成功后会在本地仓库创建一个demo的文件,该文件就是我们的maven java项目。
运行:mvn clean compile exec:java -Dexec.mainClass=“com.chinasofti.build.App”
成功后会在demo下级目录创建一个target目录,是因为将该java项目进行了编译,src/maim/java下的源代码就会编译成.class文件放入target目录中,target就是输出目录。
4:仓库的概念
通过pom.xml中的配置,就能够获取到想要的jar包(还没讲解如何配置先需要了解一下仓库的概念),但是这些jar是在哪里呢?就是我们从哪里获取到的这些jar包?答案就是仓库。
仓库分为:本地仓库、第三方仓库(私服)、中央仓库
4.1、本地仓库
Maven会将工程中依赖的构件(Jar包)从远程下载到本机一个目录下管理,每个电脑默认的仓库是在 $user.home/.m2/repository下
例如我的就在:C:UsersAdministrator.m2 epository
一般我们会修改本地仓库位置,自己创建一个文件夹,在从网上下载一个拥有相对完整的所有jar包的结合,都丢到本地仓库中,然后每次写项目,直接从本地仓库里拿就行了
这里面有很多各种各样我们需要的jar包。修改本地库位置:在$MAVEN_HOME/conf/setting.xml文件中修改,
D:javamaven epository:就是我们自己创建的本地仓库,将网上下载的所有jar包,都丢到该目录下,我们就可以直接通过maven的pom.xml文件直接拿。
4.2、第三方仓库
第三方仓库,又称为内部中心仓库,也称为私服
私服:一般是由公司自己设立的,只为本公司内部共享使用。它既可以作为公司内部构件协作和存档,也可作为公用类库镜像缓存,减少在外部访问和下载的频率。(使用私服为了减少对中央仓库的访问
私服可以使用的是局域网,中央仓库必须使用外网
也就是一般公司都会创建这种第三方仓库,保证项目开发时,项目所需用的jar都从该仓库中拿,每个人的版本就都一样。
注意:连接私服,需要单独配置。如果没有配置私服,默认不使用
4.3、中央仓库
Maven内置了远程公用仓库:http://repo1.maven.org/maven2
这个公共仓库是由Maven自己维护,里面有大量的常用类库,并包含了世界上大部分流行的开源项目构件。目前是以java为主
工程依赖的jar包如果本地仓库没有,默认从中央仓库下载
总结:获取jar包的过程
5:maven项目结构
6:maven完整的生命周期
可以用一张图表示:
7:坐标,依赖范围
这就是今天我学习到的,还有很多就不详细说明了,百度说得更详细。谢谢观看!