50.Maven

50.Maven,第1张

50.Maven Maven 创建一个空项目 maven概述

​ 自动化的项目构建工具。

​ make->ant->maven->gradle…

为什么要使用maven?

​ 1、可以很方便的实现分布式项目构建。

​ 2、强大依赖管理能力。

maven的安装和配置

​ 解压即可用,需要配置环境变量。

​ 1、解压到一个无中文无空格的目录中即可。

​ 2、配置环境变量。

​ 3、在命令行窗口执行 mvn -v

maven核心概念 maven项目的目录结构

​ 约定大于配置。

常用的maven命令:

mvn clean:做清理工作,清理上一次编译结果。

mvn compile:做编译工作,编译main目录下的java源文件。

mvn test-compile:做编译工作,编译test目录下的java源文件。先编译main目录,再编译test目录。

mvn package:做打包工作,基于pom.xml中的标签配置的值,将项目打成对应的包。

mvn install:做安装工作,将当前项目安装到maven的本地仓库

mvn deploy:做部署工作,将构建好的项目部署到对应的服务器中

maven的仓库

​ maven项目拉取的外部依赖,永远只到本地仓库中去查找。如果本地仓库中有对应的资源,引用该资源,如果没有对应的资源,maven会向中央仓库发起请求,从中央仓库中将对应的资源下载到本地仓库中,然后maven项目再从本地仓库中引用该资源。

本地仓库

​ 默认本地仓库在c盘,一般会修改其本地仓库位置。

​ 在mavne安装目录下的conf目录下的settings.xml中,将标签中的localRepository配置成本地仓库路径即可。

E:/maven/repository
远程仓库

​ 中央仓库:

​ 中央仓库镜像

​ 私服

​ 修改中央仓库镜像,用于改善资源下载速度。


      
      aliyun-public
      *
      aliyun public
      https://maven.aliyun.com/repository/public
    

    
      aliyun-central
      *
      aliyun central
      https://maven.aliyun.com/repository/central
    

    
      aliyun-spring
      *
      aliyun spring
      https://maven.aliyun.com/repository/spring
    

    
      aliyun-spring-plugin
      *
      aliyun spring-plugin
      https://maven.aliyun.com/repository/spring-plugin
    

    
      aliyun-apache-snapshots
      *
      aliyun apache-snapshots
      https://maven.aliyun.com/repository/apache-snapshots
    

    
      aliyun-google
      *
      aliyun google
      https://maven.aliyun.com/repository/google
    

    
      aliyun-gradle-plugin
      *
      aliyun gradle-plugin
      https://maven.aliyun.com/repository/gradle-plugin
    

    
      aliyun-jcenter
      *
      aliyun jcenter
      https://maven.aliyun.com/repository/jcenter
    

    
      aliyun-releases
      *
      aliyun releases
      https://maven.aliyun.com/repository/releases
    

    
      aliyun-snapshots
      *
      aliyun snapshots
      https://maven.aliyun.com/repository/snapshots
    

    
      aliyun-grails-core
      *
      aliyun grails-core
      https://maven.aliyun.com/repository/grails-core
    

    
      aliyun-mapr-public
      *
      aliyun mapr-public
      https://maven.aliyun.com/repository/mapr-public
    
  
maven的生命周期

​ 不论执行生命周期的哪一个阶段(命令),都会从当前生命周期的最初位置开始执行。

clean lifycle:清理的生命周期,用于清理前一次的编译结果

default lifycle:核心生命周期,包含了编译、测试、打包、安装、部署等等命令。

site lifycle:生成站点。

mvn site

idea中maven的配置:

file->settings->build…->build tools->maven

maven home derictory:指向maven的安装目录

user settings files:指向maven安装目录中conf/settings.xml

maven的pom.xml maven的坐标

​ 坐标:用于定位,定位一个安装在仓库中的项目jar包的位置。生成的jar包的名称是以artifacId+"-"+version.jar命名。

:公司或组织的域名的倒写

:项目名称

:版本

com.woniuxy
20210928
1.0-SNAPSHOT
maven的依赖

​ 项目中如果要导入外部依赖(jar包),需要通过来实现。

​ maven官方提供了一个网址:mvnrepository.com,在本地仓库中没有对应的maven依赖时,可到该网站查询。

	
        
            org.mybatis
            mybatis
            3.4.6
            
            compile
        
    

​ scope:用于指定依赖的作用范围。

maven依赖的传递

​ 只有在依赖的作用范围为compile时,该依赖才具备传递性,取值不为compile时,该依赖不具备传递性。

maven依赖的排除

​ 标签用于排除其他项目传递过来的依赖,主要目的是避免jar包冲突。

		
            com.woniuxy
            20210928
            1.0-SNAPSHOT
            
            
                
                    org.mybatis
                    mybatis
                
            
        
maven依赖的原则

​ 1、路径最短者优先

​ 2、路径相同时,先配置者优先

maven的继承

maven项目的分类:

通过的值来进行分类的。该标签取值有以下三个:

jar 普通java项目

war web项目

pom 父项目

继承的第一步:先创建父项目,在pom.xml中使用标签将项目的打包形式指定为pom,建议直接删除src目录。

继承的第二步:在子项目中,使用标签将父项目的坐标引入进来即可。

maven的聚合

​ maven项目的聚合在建立在继承的基础上。

聚合的第一步:在父项目的pom.xml中,使用来将子项目包含进来。

	
        ../B
    

聚合的第二步:在子项目的标签中使用指向父项目的pom.xml

../A/pom.xml
父项目集中管理依赖版本

父项目的 *** 作:

1、在父项目的pom.xml中,使用标签统一管理依赖的版本

	
        3.5.6
    

2、使用标签声明要引入到项目中的依赖,在标签中使用表达式将中的子标签的值取过来即可。

	
        
            
                org.mybatis
                mybatis
                ${mybatis.version}
            
        
    

子项目的 *** 作:

使用标签按需加载对应的依赖,无需配置标签。

	
        
            org.mybatis
            mybatis
        
    

on>




子项目的 *** 作:

使用标签按需加载对应的依赖,无需配置标签。

```xml
	
        
            org.mybatis
            mybatis
        
    

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5684277.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存