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

Maven知识学习

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

Maven知识学习

1 Maven 入门 1.1 概述 1.1.1是什么?

传统的项目管理状态分析:
当我们在开发项目的时候,由于多个人员开发不同的模块,各个人员使用的版本的不一样,导致出现错误,jar包不统一,jar包不兼容,工程审计维护过程操作繁琐等问题。为了解决这个问题,出现了maven的技术。

maven本质: 是一个项目管理工具,将项目开发和管理过程抽象城一个项目对象模型(Project Object Model)

1.1.2为什么?
  1. 跨平台
  2. 最大的消除了构建的重复
  3. 可以帮助我们标准化构建过程
  4. 一个依赖管理工具和项目信息管理工具
  5. 提供了中央仓库(提供里各种工具,需要网络支持)
  6. 对于项目目录结构和测试用例的命名都有规范
1.1.3主要功能
  • 依赖管理
    一个项目对应一个pom.xml文件,通过pom对对项目进行管理,那怎么管理的呢;靠依赖管理:依赖管理就是项目的资源,你的项目可以成为别人项目的资源,别人的项目也可以成文你项目的资源;那资源在哪呢?需要使用它,就需要在电脑上找到,这个资源就在本地(仓库),我们的电脑无法给所有人访问,所有需要将所有的公共资源提取出来,保存到私服中,也可以叫私服仓库;那私服仓库的东西从哪里来呢——中央仓库。
  • 项目构建
1.1.4maven的安装步骤?

IDEA默认集成了maven

  1. maven下载地址:https://maven.apache.org/download.cgi
  2. IDEA工具:2020版本以前的支持maven3.6是可以的;2021,2022支持maven3.8.5版本
  3. 安装和配置环境
    maven环境安装和配置
1.2Maven基础概念 1.2.1仓库

用于存储资源,包含各种jar包

仓库分类:

  1. 本地仓库:自己电脑上存储的资源,连接远程仓库获取资源
  2. 远程仓库:非本计算机电脑上的仓库,本地仓库提供资源
    • 中央仓库:Maven团队维护,存储所有资源的仓库
    • 私服:部分/公司范围内存储资源的仓库,从中央仓库获取资源

私服的作用:

  • 保存具有版权的资源,包含购买的或者自主研发的jar(中央仓库中的jar都是开源的,不能存储具有版权的资源)
  • 一定范围内共享资源,仅对内部开放,不对外共享。
1.2.2坐标

什么是坐标:maven中的坐标是用与描述仓库中资源的位置
坐标的主要组成:

  • groupID:定义当前Maven项目隶属组织名称(通常是域名的反写,例如:org.mybatis)
  • artifactID:定义当前Maven项目的名称(通常是模块名称,例如CRE)
  • version:定义当前项目版本号

Maven坐标的作用:

  • 使用唯一标识:唯一性定位资源位置,通过表示可以将资源的识别与下载工具交由机器完成
1.3依赖管理 1.3.1依赖管理常用的标签

配置依赖:事例如下


      
          org.springframework
          spring-context
          5.3.10
    

1.3.2依赖传递
  • 直接依赖:当前项目中通过依赖配置建立的依赖关系
  • 间接依赖:被依赖资源的资源如果依赖其他的资源,当前项目间接依赖其他资源
    文宇解说: 两个项目,第一个项目依赖了项目二,当项目二添加了一个依赖,这个资源也会跑到项目一;
1.3.3依赖传递的冲突问题

假设项目一依赖了junit 4.14版本,同时项目一也依赖了项目二,项目二依赖了junit4.13版本,根据依赖的传递性,项目一也就同时依赖了junit4.13版本和junit4.14版本;那问题来了,项目一依赖的是哪一个版本呢?这就是依赖传递的冲突问题。

解决方式:

  • 路径优先:当依赖出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高。
  • 声明优先:当资源在相同层级已离开时配置顺序靠前的覆盖配置顺序靠后的。
  • 特殊优先:当统计配置相同资源的不同版本,后配置的覆盖优先配置的。
1.3.4可选依赖
  • 可选依赖是指对外隐藏当前所有依赖的资源----不透明

     junit
    junit
    4.12
     true

1.3.5排除依赖
  • 排除依赖指主动断开依赖的资源,被排除的资源无需指定版本----不需要

     junit
    junit4.12 
    
    
        org . hamcrest
        hamcrest- core
    
    

1.3.6依赖范围
  • 依赖的jar默认情况下可以在任何地方使用,可以通过scope标签设定器作用范围
  • 作用范围
    • 主程序范围有效(main文件范围内)
    • 测试程序范围有效(test文件夹范围有效)
    • 是否参与打包(package指令范围内)
依赖范围对于编译
classpath
有效
对于测试
classpath
有效
对于运行时
classpath有效
例子
compileYYYspring-context
test-Y-junit
providedYY-servlet-api
runtime-YYjdbc驱动
systemYY-本地,maven仓库之外的类库

依赖范围的传递性

1.4生命周期与插件

compile(编译)–>test(测试)—>package(打包)—>install(安装)

1.4.1项目构建生命周期

Maven对项目构建的生命周期划分为3套

  1. clean:清理工作
  2. default:核心工作,例如编译,测试,打包,部署等
  3. site:产生报告,发布站点等

插件:

  • 插件与生命周期内的阶段绑定,在执行到对应生命周期时执行对应的插件功能
  • 默认maven在各个生命周期上绑定由预设的功能
  • 通过插件可以自定义其他功能,事例如下:
    Tomcat7的插件:

  
    
    
      
      
        org. apache . maven. plugins
        maven- source -plugin
        2.2.1
        
          
            
              jar
            
            generate-test-resources
          
        
      
    
  
2 项目实例:使用IDEA创建一个web的maven工程 步骤 1.打开IDEA,新建project,如图所示。



完成后的结构如下:

2.设置test(测试),resources(资源文件夹)文件夹。


新建文件夹如下图所示

为文件夹配置main 文件下的java 设置成 source文件夹,resource蛇者成resource文件夹,test文件夹下的Java设置成Tests文件夹,resources设置成Test resources文件夹,如下图所示。完成后点击ok.

3.编写index.jsp


Hello Maven!

4.配置pom.xm文件

添加tomcat服务器插件,进入mvnrepository,搜索tomcat maven,查找到tomcat maven包

进入这个包的第一个,使用2.1版本,单击进入这个版本,复制插件代码。



配置pom.xml文件,删除一些不需要的东西,添加Tomcat7插件,代码如下;




  4.0.0

  com.hai
  Maven_webProject
  1.0-SNAPSHOT
  war

  Maven_webProject Maven Webapp
  
  http://www.example.com
  
  
  
  
  
    
      
        
        org.apache.tomcat.maven
        tomcat7-maven-plugin
        2.1
      
    
  



刷新maven后可以看到tomcat7插件,如下图。

5.启动运行

选择tomcat7的tomcat7:run的运行命令,服务器就启动了,单击运行的连接,可以在浏览器上看到运行结果。


结果:

6.配置运行(扩展)

单击Add configuration 添加maven运行,配置命令为Tomcat7:run,点击IDEA的运行,就可以启动服务器。配置如下。

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

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

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