
自动化的项目构建工具。
make->ant->maven->gradle…
为什么要使用maven? 1、可以很方便的实现分布式项目构建。
2、强大依赖管理能力。
maven的安装和配置 解压即可用,需要配置环境变量。
1、解压到一个无中文无空格的目录中即可。
2、配置环境变量。
3、在命令行窗口执行 mvn -v
maven核心概念 maven项目的目录结构 约定大于配置。
常用的maven命令:
mvn clean:做清理工作,清理上一次编译结果。
mvn compile:做编译工作,编译main目录下的java源文件。
mvn test-compile:做编译工作,编译test目录下的java源文件。先编译main目录,再编译test目录。
mvn package:做打包工作,基于pom.xml中的标签配置的值,将项目打成对应的包。
mvn install:做安装工作,将当前项目安装到maven的本地仓库。
mvn deploy:做部署工作,将构建好的项目部署到对应的服务器中
maven的仓库 maven项目拉取的外部依赖,永远只到本地仓库中去查找。如果本地仓库中有对应的资源,引用该资源,如果没有对应的资源,maven会向中央仓库发起请求,从中央仓库中将对应的资源下载到本地仓库中,然后maven项目再从本地仓库中引用该资源。
本地仓库 默认本地仓库在c盘,一般会修改其本地仓库位置。
在mavne安装目录下的conf目录下的settings.xml中,将标签中的localRepository配置成本地仓库路径即可。
远程仓库E:/maven/repository
中央仓库:
中央仓库镜像
私服
修改中央仓库镜像,用于改善资源下载速度。
maven的生命周期aliyun-public * aliyun public https://maven.aliyun.com/repository/public aliyun-central * aliyun central https://maven.aliyun.com/repository/central aliyun-spring * aliyun spring https://maven.aliyun.com/repository/spring aliyun-spring-plugin * aliyun spring-plugin https://maven.aliyun.com/repository/spring-plugin aliyun-apache-snapshots * aliyun apache-snapshots https://maven.aliyun.com/repository/apache-snapshots aliyun-google * aliyun google https://maven.aliyun.com/repository/google aliyun-gradle-plugin * aliyun gradle-plugin https://maven.aliyun.com/repository/gradle-plugin aliyun-jcenter * aliyun jcenter https://maven.aliyun.com/repository/jcenter aliyun-releases * aliyun releases https://maven.aliyun.com/repository/releases aliyun-snapshots * aliyun snapshots https://maven.aliyun.com/repository/snapshots aliyun-grails-core * aliyun grails-core https://maven.aliyun.com/repository/grails-core aliyun-mapr-public * aliyun mapr-public https://maven.aliyun.com/repository/mapr-public
不论执行生命周期的哪一个阶段(命令),都会从当前生命周期的最初位置开始执行。
clean lifycle:清理的生命周期,用于清理前一次的编译结果
default lifycle:核心生命周期,包含了编译、测试、打包、安装、部署等等命令。
site lifycle:生成站点。
mvn site
idea中maven的配置:
file->settings->build…->build tools->maven
maven home derictory:指向maven的安装目录
user settings files:指向maven安装目录中conf/settings.xml
maven的pom.xml maven的坐标 坐标:用于定位,定位一个安装在仓库中的项目jar包的位置。生成的jar包的名称是以artifacId+"-"+version.jar命名。
:公司或组织的域名的倒写
:项目名称
:版本
maven的依赖com.woniuxy 202109281.0-SNAPSHOT
项目中如果要导入外部依赖(jar包),需要通过来实现。
maven官方提供了一个网址:mvnrepository.com,在本地仓库中没有对应的maven依赖时,可到该网站查询。
org.mybatis mybatis3.4.6 compile
scope:用于指定依赖的作用范围。
maven依赖的传递 只有在依赖的作用范围为compile时,该依赖才具备传递性,取值不为compile时,该依赖不具备传递性。
maven依赖的排除 标签用于排除其他项目传递过来的依赖,主要目的是避免jar包冲突。
maven依赖的原则com.woniuxy 202109281.0-SNAPSHOT org.mybatis mybatis
1、路径最短者优先
2、路径相同时,先配置者优先
maven的继承maven项目的分类:
通过的值来进行分类的。该标签取值有以下三个:
jar 普通java项目
war web项目
pom 父项目
继承的第一步:先创建父项目,在pom.xml中使用标签将项目的打包形式指定为pom,建议直接删除src目录。
继承的第二步:在子项目中,使用标签将父项目的坐标引入进来即可。
maven的聚合 maven项目的聚合在建立在继承的基础上。
聚合的第一步:在父项目的pom.xml中,使用来将子项目包含进来。
../B
聚合的第二步:在子项目的标签中使用指向父项目的pom.xml
父项目集中管理依赖版本../A/pom.xml
父项目的 *** 作:
1、在父项目的pom.xml中,使用标签统一管理依赖的版本
3.5.6
2、使用标签声明要引入到项目中的依赖,在标签中使用表达式将中的子标签的值取过来即可。
org.mybatis mybatis${mybatis.version}
子项目的 *** 作:
使用标签按需加载对应的依赖,无需配置标签。
org.mybatis mybatis
on>
子项目的 *** 作: 使用标签按需加载对应的依赖,无需配置 标签。 ```xml org.mybatis mybatis
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)