maven

一、Maven简介

maven仓库:
https://mvnrepository.com/

1、什么是Maven

https://maven.apache.org/

2、作用

1)管理项目
2)管理jar包解决依赖
3)自动化构建

二、安装、配置Maven

下载路径:
https://maven.apache.org/download.cgi

1、配置镜像仓库

conf的配置文件

配置多个镜像仓库id不能一样,id要唯一,id自定义。
mirrors类似拦截器,拦截对远程仓库的请求,把请求的重定向到配置的url.
repositoryid
换成**表示匹配所有maven仓库请求
所有的请求都转到下面的url中
即就是请求都去访问下面的url,从阿里云镜像仓库去拉取需要的jar包
name自定义
在这里插入图片描述

2、配置本地仓库

中央仓库:远程中央仓库
本地仓库:从中央仓库下载jar包存放的位置,在本地指定目录。
镜像仓库:对某一仓库做了镜像,阿里云镜像仓库。
私服:在局域网搭建的服务器,maven服务器。

三、创建Maven项目

A.可以直接用maven创建java项目
1…基本操作:
先在本地磁盘创建一个文件夹mavenproject
直接在C:\ZTools\maven\mavenproject文件下输入cmd,直接弹出命令框,直接跳到该目录的路径下
在这里插入图片描述

  1. 创建Java项目:mvn archetype:generate
    7是创建Java项目,10是创建web项目
    在这里插入图片描述
    groupid是公司域名加项目名

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
即创建好java项目
在这里插入图片描述

2.执行maven操作
首先要进到test的项目中
在命令行输入命令:
在这里插入图片描述
mvn compile,编译后有class文件,编译会用到的插件maven-status
在这里插入图片描述
在这里插入图片描述

mvn package
java打包是打成jar包,web项目是打成war包
在这里插入图片描述

jmeter有些功能没有,自己实现过后。
最常用的地方是beanshell的地方,因为它的界面不方便写代码,先在idea处先写好打成jar包,放 在jmeter下ext的lib目录下放自己的jar包,自己引入jar包

mvn clean
清理删除target目录
清除前
在这里插入图片描述
清除后
在这里插入图片描述
在这里插入图片描述

B.工具创建maven的话集成maven更方便

四、Maven核心命令

1.常用命令:
在这里插入图片描述
在这里插入图片描述

C:\ZTools\maven\com\zhou\mvpro\test\1.0-SNAPSHOT
mvn install是把创建的项目放到本地仓库里C:\ZTools\maven 跟配置一样
com\zhou\mvpro groupid
model是test
版本号是1.0-SNAPSHOT
在这里插入图片描述
这样安装为什么要install?
在本地其他model引用model
就需要去本地仓库找
再去远程仓库找

deploy发布
发布到远程中央仓库
远程中央仓库需要密码,一般也不会推到中央仓库,不安全。
一般推送到私服下,本地调试把他推送到本地仓库。

2.Maven生命周期详解
在这里插入图片描述

一个项目build的过程。
要经过编译、测试、打包、安装

分为三套
1.clean做清理工作,target删除掉。
执行的时候多个命令:mvn clean package …

2.default,主要的是compile,test,package,install

3.site主要是站点创建

特点:三个生命周期是独立的,执行default的命令不会去执行clean里的命令
如果一个生命周期有多个命令(一个命令就是一个build的过程),执行一个独立的生命周期里命令,他的其他命令也是会执行。
常用的是前面两个生命周期的命令。
mvn clean package

五、在IDEA中使用Maven

1.idea集成maven
idea–File --settings–搜索maven
在这里插入图片描述

在这里插入图片描述
2.idea创建maven项目
File–new -Project–Empty Project
在这里插入图片描述

在这里插入图片描述
File–new -Module-Maven
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
颜色区分设置
1、点击File–>project structure…
2、Modules–>Sources–>main右键–>New Folder, 输入resources
3、选中右键Mark Directory as
在这里插入图片描述
用maven命令创建的项目pom是黄色,需要将其变成蓝色的设置选中pom,右键选择–Add as Maven Project

在这里插入图片描述

自动生成target目录
在这里插入图片描述
maven用途:1.在beanshell自己引入相关jar包
2.看开发,怎么管理,相关依赖怎么做的

六、Maven的pom配置体系详解

pom 项目对象模型 Project Object Model
pom.xml是maven的核心配置文件
一个maven项目有且只有一个pom文件
在idea中model就是一个项目
model是workspace
在pom.xml中可以去造依赖
把别人的写好的jar包拿来用
直接在dependencies把他的坐标加进来,自动把相应的jar包拉去下来
坐标:文本标识,根据坐标的描述可以找到相应的资源
dependencies里的核心元素:
com.zhou.test01
test01
1.0-SNAPSHOT
compile依赖的作用域,默认是compile,参与到打包部署,如果是test就不打包部署只能用在测试代码中,runtime是在编写代码不需要用到,运行时需要用(参与到打包部署)
jar Java项目是 jar(默认)、web项目是 war 父项目是pom

同时执行两个命令的配置
在这里插入图片描述
若要引用某个依赖fastjson,可以去maven仓库https://mvnrepository.com/去搜fastjson(阿里巴巴)
在这里插入图片描述
在这里插入图片描述
这里即就是坐标
在这里插入图片描述

properties全局属性
点击1.2.78版本号–右键–Refactor–Extract-Property

在这里插入图片描述
在这里插入图片描述
即生成了
在这里插入图片描述
超级POM
在使用idea时(通过命令创建项目、执行相关命令时、可以看到pom里是没有添加相关插件的
就只有坐标相关、properties,没有plugin
是如何执行相关命令
在这里插入图片描述
为什么会有嘞?因为涉及到了超级pom这个文件
,这个文件是继承了默认的父级pom
就像某一个类直接间接继承了Objectl类。
在maven里也有一个超级(父)pom的概念,idea可以看到,myeclipse可以看到
超级pom不可以改。

七、Maven中的关系:继承、聚合、依赖

1、继承

项目也是有继承的,一个maven项目继承另一个maven项目,被继承的项目为父项目,另外一个项目则为另一个项目的子项目。

场景:微服务项目,一个父项目,拆分了很多子项目。

就需要用到继承,把一个项目继承为另一个项目,最直观的方式是按目录结构创建。

实现继承项目:

第一步:在父项目的packing里配置pom,表示着这个所属的maven项目不会被打包。
在这里插入图片描述

第二步:在子项目的pom中添加parent,引用父项目的坐标groupid,artifactID
在这里插入图片描述
第三步:把子项目用到的依赖都提取到父项目的pom中,外层用dependencyManagement,依赖就不会被传递。

父项目不会用来写代码,只是用来管理相同的配置,公共的依赖提取到父项目的pom。
子项目用的技术栈基本是一样的,公共的依赖可以提取父项目的pom。
加上,可以选择性继承,要用什么,就直接添加依赖。
父项目的pom+ 方式解决:
要升级,版本号若全在父级pom,直接在父级项目的properties里改,子项目会继承父级项目,可以直接添加依赖。

2、聚合

父项目管理子项目。
在父项目的pom中添加modules,管理子项目。
执行父级pom的命令时,会对module模块进行操作。
在这里插入图片描述

3、依赖

依赖的传递。

4.具体操作步骤

1.file–new --project–Empty project–next–填写project name(随便定义)
2.file -new model–选择maven----next–填写Groupid(公司域名反向如com…)、Artfactid(名字)–next–finish 此时相当于是父级项目,不需写代码,将src删除
创建子项目时,就自动指定继承 (父项目的packing里配置pom)、子项目自动创建parent、聚合(父项目pom自动创建modules)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.创建子级项目
鼠标放在父级项目上右键–new --modle–maven—next–填写子项目parent的父级坐标(比如Groupid此时这个不用写、直接写Artfactid)–next–finsh
在这里插入图片描述
此时的父级pom,自动将packing里配置pom,自动创建modules)
在这里插入图片描述
此时的子项目的pom,自动创建parent,自动引用父项目的坐标groupid,artifactID
在这里插入图片描述

若出现这个,可以进行如下配置(1.settings–搜索maven–选择maven home directory–选择maven所在的位置-2.settings–搜索maven–importing -勾选 import maven projects auotmatically)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
继续创建两个子项目
在这里插入图片描述
子项目都有相同的依赖,父级管理子级的依赖和版本,需要提取到父级pom里
去maven仓库获取依赖,假设每一个子项目有一个共同依赖,就需要将共同依赖的提取到父级项目里
在这里插入图片描述

在这里插入图片描述
这样的缺点是子项目都可以用到依赖,改进 把相关依赖放到 dependencyManagement中
,根据自己想要的依赖进行选择,此时依赖就不会进行传递,即在右侧看不到dependencies
在这里插入图片描述
若子项目需要用依赖,在子项目的pom中添加依赖,(版本可去掉)即可在右侧看到所需要的依赖。
在这里插入图片描述

在父级的pom文件中,可将版本号提取出来,操作如下
选中中间版本号–Refactor–Extract–Property
在这里插入图片描述
propertties里一般存编码、版本这些属性值的
在这里插入图片描述
各子项目所需要版本不一样,在各自的pom文件加上version即可。
在这里插入图片描述
product依赖order,user依赖product
在这里插入图片描述
在这里插入图片描述
product依赖order,user依赖product,order依赖httpclient
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值