栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Maven

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Maven

目录

一、Maven安装配置

二、GAV解释

三、Maven项目结构

 四、pom.xml内部结构

​编辑 五、Maven项目的创建

5.1 maven web项目创建

Maven创建Web项目并使用Tomcat本地服务器和集成服务器_小钟要学习!!!的博客-CSDN博客_maven创建web项目5.2 Web项目的结构

​编辑 

六、Maven构建周期管理命令

 (一)、项目构建周期

(二)、具体命令

1、validate

2、 compile 

 3、clean 清理命令

 4、test 测试命令

 5、pakcage 打包命令

 6、install 安装命令

七、jar包冲突解决 

(一)、什么是jar包冲突

(二)、jar包冲突解决方案

1、最短路径优先原则

2、最先声明优先规则


一、Maven安装配置

maven安装及配置(详细版)_伏加特遇上西柚的博客-CSDN博客_maven安装配置

二、GAV解释

      一个Maven工具可以同时为多个工程提供jar服务,为了区分java工程,Maven工具要求每一个申请帮助的Java工程都必须拥有【一个唯一的编号】,为了确保Java工程中编号是唯一的。Maven要求每一个工程的ID编号必须由三部分组成: 组织名.项目名.版本号

  • 组织名
  • 项目名
  • 版本号

GAV专业上被称为Maven工程的坐标

三、Maven项目结构

 四、pom.xml内部结构

 五、Maven项目的创建

1、

2、 

 3、

 4、

5、idea设置:pom文件设置dependency自动下载对应jar包

 

 Maven公共仓库:https://mvnrepository.com/

5.1 maven web项目创建

Maven创建Web项目并使用Tomcat本地服务器和集成服务器_小钟要学习!!!的博客-CSDN博客_maven创建web项目5.2 Web项目的结构

 

六、Maven构建周期管理命令

 (一)、项目构建周期

 项目中服务(service)开发完毕后,要进行的一系列活动

(二)、具体命令

1、validate

通知Maven工具检测当前项目中pom.xml文件格式是否正确

例如:我们将pom文件中,可以写错一个标签

 

 我们删除w,再次点击vaildate,提示成功

 我们在cmd使用命令,也可以发现

2、 compile 

 编译命令

  •   第一步:通知Maven工具将main/java文件夹所有的java文件变为class文件
  •  第二步: 通知Maven将生成class文件存储target/classes

 使用命令方式:

 3、clean 清理命令

          通知Maven工具将当前工程中target文件夹进行删除

 

 使用命令方式:

 4、test 测试命令
  •  第一步:通知Maven将工程中test/java文件中所有的测试类编译为class文件
  • 第二步:通知Maven将测试用的class保存到target/test-classes
  • 第三步:通知Maven将所有的测试方法跑一遍
  • 第四步:通知Maven将测试结果生成一个测试报告存入到target文件(surefire-report)

 

 使用命令的方式:

 5、pakcage 打包命令

        将项目中main/java文件中所有的java文件编译为class并大成jar包,保存到target文件夹 

  •  第一步:    先test进行测试
  •  第二步:   在compile编译文件
  • 第三步:   package将class(entity/util/dao/service) 打成jar包

 使用mvn package命令方式:

 6、install 安装命令

       将项目达成jar包,保存到本地仓库

 其他项目想要使用,直接在pom.xml文件中,关联项目的GAV就可以使用

七、jar包冲突解决 

(一)、什么是jar包冲突

         依赖冲突指当模块中引入很多jar包时,如果其中存在着groupId和artifactId 一样,但是version不一样的两个jar包,这就是依赖冲突。

例如:

A--->E

A--->B

B---->C----->D_1.1(TestD类有method1)

E--->D_1.2(TestD类取消method1)

项目A同时依赖项目B和项目E

项目B依赖项目C,项目C依赖D_1.1项目

项目E依赖D_1.2

此时在项目A中通过D调用method1时就会抛出java.lang.NoSuchMethodException异常,这就是”jar包冲突”;

(二)、jar包冲突解决方案
  1. 最短路径优先原则
  2. 最先声明优先原则
  3. 依赖排除
  4. 版本号绑定方案

1、最短路径优先原则

A---->B------>C--->D_1.1(TestD有Method1)

A---->E--->D_1.2(TestD没有Method1)

        项目A向Maven工具索要TestD类。由于路径不同,maven遵循路径短优先,因此它会找到D_1.2版本,TestD中没有Method1方法;

2、最先声明优先规则

A--->B---->D_1.1(TestD 有Method1)

A--->E---->D_1.2(TestD 没有Method1)

项目A向Maven工具索要TestD类。由于路径相等,此时maven遵循声明的优先规则,谁最后声明(pom.xml文件下面),maven找谁。因此maven会找D_1.2的TestD类的方法;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/996055.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号