Maven
Maven 对 jar 包的管理
传统项目 jar 包放在项目中。这样,不同的项目是相同的框架结构,同样的 jar 包会出现在不同的项目中。很浪费磁盘空间。
maven 工程 jar 放在 jar 包仓库中,在项目中只存放 jar 包的坐标引用。使用时,会根据坐标找到对应的 jar 包。这样,如果是多个工程,就可以重用仓库中的 jar 包,从而节省磁盘的空间。
Maven 仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。
Maven 仓库分为:本地仓库、远程仓库、中央仓库。
本地仓库就是开发者用于存储第三方库的文件夹。在开发者的本地磁盘中。
中央仓库是由 Maven 社区提供的仓库,其中包含了大量常用的第三方库。
当项目需要用到第三方库时,先从本地仓库中查找第三方库,如果没有就去中央仓库中查找。
中央仓库中找到以后,将第三方库下载到本地仓库,然后,再供项目使用。
mvnrepository.com :可以查找第三方库所在的坐标。
有的公司为了开发需要,会在公司内部搭建私人服务器,就是所谓的远程仓库。项目中需要用到第三方库时,会先从本地仓库查找第三方库,如果没有,再去远程仓库查找。如果远程仓库也没有,就去中央仓库查找。
然后,从中央仓库中将第三方库下载到远程仓库,供本公司内部人员使用。再从远程仓库下载到本地仓库,再供项目使用。开发者除了可以下载第三方的库以外,还可以将自己开发的代码安装部署到远程仓库,以供别的开发者使用。
Maven 工程的坐标
Maven 工程中,每个构建都有自己的一个标识(唯一的),它由 groupId,artifactId,version 等信息组成,因此 Maven 就可以对构建进行版本控制、管理。
groupId:公司名称或组织名称;
artifactId:项目名称;
version:当前项目的版本号。
packaging:定义 maven 项目打包的方式,也可以通过定义打包成 jar 或war 等;当不定义 packaging 时,maven 就会使用默认值 jar。如果是父模块,那么应该配置为 pom。
maven 的配置
在 maven 安装目录/conf/settings.xml,是 maven 的主配置文件。
配置本地仓库
在根目录下,加入
F:/repository
maven 的中央仓库在国外,所以下载很慢。为了加载下载速度,可以配置阿里云镜像,以加快下载速度。
在 settings/mirrors 标签中,加入:
aliyunmaven * aliyun maven maven.aliyun.com/repository/…
maven 工程的目录结构
src/main/java :存放核心代码。也就是开发者书写的代码。
src/main/resources :存放配置文件,编译后,配置文件会放在 class 目录中。
src/test/java :存放测试代码。
pom.xml :工程主配置文件。
target :项目由 maven 自动输出位置,编译后所有 class 文件都在这里。
idea 中配置 maven
点击 :file/settings/Build,Execution,Deployment/Build Tools/maven
每次新建项目都需要进行这样的配置,比较繁琐。所以,可以在新建项目时,完成 maven 的配置。
File/new projects settings/settings new projects /Build,Execution,Deployment/Build Tools/maven 对 maven 进行初始化配置。配置方式和上面一样。
maven 生命周期
maven 构建生命周期就是 maven 将一个整体任务划分为一个个的阶段,类似于流程图,按顺序依次执行。在执行后面生命周期时,会执行之前的生命周期。
验证,编译,测试,打包、验证、安装、部署
打包:执行 mvn package ,将项目中的 class 文件进行打包。
安装:执行 mvn install ,将项目打包后的 jar 文件安装到本地仓库中。