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

Maven基础

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

Maven基础

Maven基础 Maven是什么?

Maven本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)

Maven的作用
  • 项目构建:提供标准的、跨平台的自动化项目构建方式
  • 依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题
  • 统一开发架构:提供标准的、统一的项目结构

下载与安装

官网地址:https://maven.apache.org/

Maven是绿色版软件、解压即可使用

相关配置

需要在环境变量中进行如下配置,maven依赖Java,JAVA_HOME的配置是必须的,另外需要配置MAVEN_HOME,并且在Path下也需要 进行配置


Maven基础概念 仓库
  • 仓库用于存储jar包
  • 仓库分类
    • 本地仓库:自己电脑上存储资源的仓库,通过连接远程仓库获取资源
    • 远程仓库:非本机电脑上的仓库,为本地仓库提供资源
      • 中央仓库:Maven团队维护,涵盖了世界上99%的jar包
      • 私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源
  • 私服的作用:
    • 保存具有版权的资源,中央仓库中的jar包都是开源的,不能存储具有版权的资源
    • 在一定范围内共享资源,仅对内部开放,不对外部共享
坐标
  • 坐标的作用:

    • 用于描述仓库中资源的位置

    • 可以在这里寻找资源对应的坐标 https://mvnrepository.com/

    • 使用唯一标识,唯一性定位资源位置,通过该表示可以将资源的识别与下载工作交友机器完成

  • 坐标的主要组成

    • groupId:定义当前Maven项目隶属组织名称(通常是域名反写)
    • artifactId:定义当前Maven项目名称(通常是模块名称)
    • version:定义当前项目版本号
仓库配置
  • 本地仓库配置

    本地仓库用来存储从远程仓库下载过来的资源,默认路径存储在c盘用户的文件夹下面,我们需要修改他的保存路径,因为c盘一般都是我们的系统盘,放在里面不合适,打开maven安装位置下的配置文件settings.xml,进行如下配置

      D:mavenrepository
    

  • 远程仓库配置

    从中央仓库下载数据,相当于从国外下载数据,速度会非常的慢,我们可以设置镜像仓库配置,这是一个阿里提供的镜像仓库,相当于中转站,完全跟中央仓库一样,我们只需要配置settings.xml文件,从阿里的镜像仓库下载即可

     
    	 
    			nexus-aliyun
    			central
    			Nexus aliyun
    			http://maven.aliyun.com/nexus/content/groups/public
    	
    
    

maven工程的创建

maven创建web工程

新建模块的时候选择maven模块,并且选择webapp的模板

tomcat安装与启动

我们需要配置tomcat8与maven的插件,在pom.xml文件中进行以下配置

  
    
      alfresco
      https://artifacts.alfresco.com/nexus/content/repositories/public/
    
  
  
    
      
        org.apache.tomcat.maven
        tomcat8-maven-plugin
        3.0-r1655215
        
          8080
          UTF-8
        
      
    
  

需要启动工程只需要双击以下按钮即可


依赖管理 依赖配置
  • 依赖指当前项目运行所需要的jar,一个项目可以设置多个依赖

  • 格式:

      
     
        
        
          
          junit
          
          junit
          
          4.11
        
      
    
依赖传递
  • 依赖具有传递性

    • 直接传递:在当前项目中通过依赖配置建立的依赖关系
    • 间接传递:被依赖的资源如果依赖其他资源,其他资源与项目的关系就是间接传递
  • 间接传递的冲突问题

    • 路径优先:当依赖中出现相同资源时,层级越深,优先级越低,层级越浅,优先级越高
    • 声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
    • 特殊优先:当同级配置相同资源的不同版本,后配置的覆盖先配置的
  • 可选依赖

    • 可以对外隐藏当前所依赖的资源
      
        
          junit
          junit
          4.11
          
          true
        
      
    
  • 排除依赖

    • 主动断开依赖的资源,被排出的资源无需指定版本
    • 例如junit内部需要依赖hamcrest-core,而我们不想使用该依赖,可以排除掉
      
        
          junit
          junit
          4.11
          test
          
            
              org.hamcrest
              hamcrest-core
            
          
        
      
    
依赖范围
  • 依赖的jar默认情况下在任何地方都可以使用,可以通过scpoe标签设定其作用范围
  • 作用范围:
    • 主程序范围有效(main文件夹范围内)
    • 测试程序范围有效(test文件夹范围内)
    • 是否参与打包(package指令范围内)

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

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

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