Maven concepts
Maven是目前市场上最流行的包管理工具、项目构建工具。通过Maven可以管理整个项目从开发到编译、测试、打包、发布的整个流程,进行标准化开发。
特别是通过依赖机制可以优雅的解决项目中包的依赖问题,大大简化了项目开发、管理流程
Maven基于项目对象模型(POM)概念,利用“中央信息片段”管理一个项目的构建,生成,报告等步骤;是目前最主流的“项目构建工具”。
Maven并不是市场上唯一的项目构建工具,但是是目前最流行的项目构建工具
常见的项目管理工具
ANT | One of the earliest project building tools, rarely used at present |
---|---|
Maven | Currently the most mainstream project construction tool, widely used |
Gradle | The current relatively novel project construction tool has better performance when compared to Maven for large project management |
Basic concepts of Maven
a. Repository
Maven使用库的概念来管理项目资源
Maven库又分为本地库和远程库,远程库可以细分为中央库、镜像库(代理库)和私服
a1、中央库
指的是maven官方管理维护的库,是世界上最大的maven仓库,管理着大量的资源。
a2、镜像库(代理库)
为了分摊中央库的访问压力,为了是全世界不同地区的用户都可有较好的下载体验,除了中央库,全世界范围内还有很多镜像库存在,镜像库可以认为是对中央库的全部或部分资源的拷贝,全世界开发者可以选择去链接速度最优的镜像库获取资源。
目前国内比较知名的maven镜像库有网易的镜像库和阿里的镜像库
a3、私服
公司或者个人也可以利用maven的机制搭建在一定范围内使用的类似中央库的库,在一定的范围内管理项目资源,这样的库只能在一定的范围内起作用,且不一定和中央库互通,这样的库称之为私服库
a4、本地库
在当前机器内部保存资源的库。
Maven在工作时优先从本地库寻找资源,如果找不到就去配置的镜像库或者私服中自动下载资源,下载的资源保存在本地库中,以便于重复使用。
Resource location in the library
在Maven库中管理着大量的资源,如何唯一的标识这些资源是一个基本的问题。maven是通过资源的坐标地址来解决这个问题的。
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.7.RELEASE</version>
其中
<groupId> 指定项目名称
<artifactId> 指项目下某一模块名称(jar包名称)
<version> 指版本信息
Maven installation and configuration
a.下载
http://maven.apache.org/download.cgi
b.安装
i.安装好JDK
maven3.6以上的版本至少需要JDK 1.8,配置好JAVA_HOME环境变量
参考:https://blog.csdn.net/weixin_44796239/article/details/106937585
ii.安装Maven
解压Maven到任意目录下,注意目录路径中不要出现中文或者空格。
iii.配置环境变量
配置MAVEN_HOME 环境变量指向maven的安装目录
配置PATH环境变量指向maven安装目录中的bin目录
vi.配置maven
maven的核心配置文件是 conf/settings.xml
在正式使用maven之前需要配置这个文件,主要是指定本地库和镜像库的地址
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
<!-- 配置本地库 -->
<localRepository>d://ali_repo</localRepository>
...
...
...
<!-- 配置镜像库 -->
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
Use of Maven
可以利用maven管理项目的整个生命周期,这是通过maven的不同命令来实现的。
a.创建项目 mvn archetype:generate
i.进入要创建项目的目录,执行命令mvn archetype:generate
ii.提示要求选择创建项目的程序骨架
默认提供了10中,我们目前知道两种即可
所谓的项目骨架指的是项目的不同的结构,不同项目往往是具有不同的结构的,例如基本的Java项目和Java Web项目的机结构就是不同的,在使用mvn创建这些项目时通过制定不同的骨架来创建出不同结构的项目
1)提示选择创建项目要使用的骨架(默认是7)
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 7:
2)普通的Java项目 : 7
3)普通的web项目:10
iii.要求输入groupId
通常情况下,groupId 要以公司的域名反写来声明
iv.要求输入artifactId: 项目名
v.要求输入version : 版本号
vii.检查信息并确认 Y::
viii.创建出的项目结构 如下图:
Okay, let's get here first. The rest are the common commands of Maven. The coding is not easy, so take a while. . . . .
If someone gave it, ha ha ha ha ha ha ~ hungry goose goose goose goose -
micro letter
Alipay