Maven学习

Maven

Maven:在美国是一个口语化的词语,代表专家
Maven:是一个项目管理工具。
Maven的作用:
第一:导入jar包,而且他能够解决jar冲突,jar冲突手动解决是很困难的。
第二:maven可以让java编译成二进制字节码文件
第三:可以帮助我们快速打包
第四:maven可以帮我们一键构建
maven依赖管理
用maven项目的话所占的磁盘空间小;
传统的工程是把jar放到项目中,而用maven开发的项目是把jar放在了jar仓库中(在idea中可以进行设置)在这里插入图片描述这样如果是只有一个项目的话,并不能减小磁盘,如果是有十个项目使用相同的jar。则可以减小很大的磁盘空间。则其实是符合了java开发的代码可重用。
依赖管理:maven工程对jar包的管理过程
项目的一键构建
maven中会有一个pom.xml 在cmd进入pom.xml 目录。执行 mvn tomcat:run就可以一键构建项目了 。
在这里插入图片描述
Maven的安装
官网下载maven
在这里插入图片描述
先将其解压
我这里给他解压到了E盘
在这里插入图片描述
在maven下面:
在这里插入图片描述
这个setting.xml代表的是配置文件。
这时候,先进行系统变量配置
在这里插入图片描述
进入path编辑环境变量,加入变量
在这里插入图片描述
打开命令窗口 运行 mvn -v
在这里插入图片描述代表安装成功。

仓库的种类和彼此关系
当我们启动项目的时候,maven会根据jar包的坐标去仓库找jar包。那么默认的jar会在哪里呢?
根据settings.xml文件。在这里插入图片描述
user.home代表的是用户的系统盘,所以,默认会在系统盘下面创建repository文件夹当做maven本地仓库。
如果刚刚安装完,本地仓库是没有jar包的,此时,如果电脑联网他会找到中央仓库进行下载,直接下载到本地仓库。中央仓库放置了几乎所有开源的jar。
在公司中,为了在不联网的时候也可以开发,也为了公司内部需要的jar放在一个统一的地方。我们会在创建一个仓库,叫做远程仓库(私服)只要确保自己电脑和远程仓库在一个局域网,就可以下载远程仓库的jar。远程仓库如果没有对应的jar,则会从中央仓库下载。所以,远程仓库jar来源一部分来自于中央仓库,一部分来自于本地上传。
仓库分三类:本地仓库 远程仓库 中央仓库
对maven本地仓库进行更改
在这里插入图片描述
maven标准目录结构
maven项目标准目录结构:
src/main/java 目录 核心代码部分
src/main/resources 配置文件部分
src/test/java 测试代码部分
src/test/resources 测试配置文件
如果是web项目,还有
src/main/webapp 页面资源 js css 图片等
以后写maven的时候,记得按照这个目录进行写
maven 命令行
在这里插入图片描述
当运行mvn clean的时候 可以看到会删除target
当运行 mvn compile的时候,会看到产生target,这里面是class文件
那么mvn clean 在什么时候用呢?当公司中,别人编译的项目给你的时候,你先把他的编译信息进行清除。因为别人电脑上的项目编译可能由于硬件不同,所以在你的电脑上可能不可以使用。所以要先进行清除。然后在进行重新编译。
mvn test 将test下面的代码进行编译生成class文件 之前的项目也会进行生成。
在这里插入图片描述
mvn package 将项目进行打包。
在pom文件下 有一个信息;
在这里插入图片描述
生成了一个jar包 注意 如果要打war在pom中可以进行更改的。
mvn install 这个命令是把主要代码编译了 把测试代码也编译了 也打了包 还把这个包安装到了本地仓库。

maven生命周期
项目
默认生命周期
前面四个直接用mvn xxx既可以
mvn clean:清除项目编译信息(清理生命周期)
上面五个是默认生命周期 当执行后面命令的时候,前面命令都会执行。
maven概念模型图
在这里插入图片描述
对pom进行分析:
在这里插入图片描述
这个是项目自身的信息;第二个到第五个项目自身的坐标
dependencies:代表的是项目运行所依赖的jar包
在这里插入图片描述
这个代表的是配置的插件,这个代表的是tomcat的插件(运行环境)

所以,pom(项目对象模型)中主要包括的是,项目自身信息、项目运行所依赖的jar包信息、项目运行环境信息,比如:jdk、tomcat信息。
依赖管理模型:放置的全部都是jar包的模型
例:
在这里插入图片描述
综合图:
在这里插入图片描述
idea集成maven
前提:需要安装好maven
打开idea在file下面点击setting,在里面找maven进入如下图:
在这里插入图片描述
这个maven home directory 代表的是安装目录
当选取好User setting file的时候,就会自动加载Local repository;
然后点击Runner 进行如下更改:
在这里插入图片描述
代表当没有连接网络的时候,他会去找以前有没有下载过该jar,如果下载过就可以使用了。不联网也可以创建maven工程。
注意:这个是该当前项目,如果想改变新项目的话,需要在
在这里插入图片描述
在这里进行设置。
创建一个web的maven项目
在这里插入图片描述
此时会发现没有java test 的目录
这时候新建这两个文件夹,注意创建的是普通文件夹
在这里插入图片描述
需要把它们两进行设置为资源文件夹和test文件夹
在这里插入图片描述
分别是这两个文件夹。这时候正式代码就可以写在java文件夹下了。

在这里插入图片描述
分析:第一个代表的是生命周期,用上这个就不要敲命令行了,而下面代表的是他的插件,一个生命周期有一个插件。

**maven 的 jar冲突 **
问题出现:maven有一个tomcat插件,用maven构建项目的时候,不用本地的tomcat,而是用他自身的tomcat插件,当我们在项目中导入这两个包的时候,
在这里插入图片描述
其自身的tomcat插件也有这两个包,当启动项目的时候,会有两套这个包。会相冲突。如果直接删除是不行的,当初就是因为报错才导入这两个包。
对于这种问题,只要改变一下这两个包的作用域就好了。
只在编译时有作用 provided
只在测试时有作用 test

本身maven的tomcat是tomcat6现在可以给他给出tomcat7
在这里插入图片描述
注意tomcat6还是存在的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值