maven(一)

Maven

作用:管理Jar包
-MVC适合中小型项目,而大型项目分多模块,多个工程,需要使用Maven管理
-将所有jar包存放在中央仓库,本地只有一份
-jar包通常存在依赖关系,使用Maven会自动导入所需要的jar包
-Maven是自动化构建工具: 编译,测试,打包,部署

构建:

概念:构建就是Java代码、框架配置文件等其他资源文件、JSP页面和图片等静态资源作为“原材料”,去“生产”出一个可以运行的项目的过程。
构建的环节:

1)清理(clean):删除以前的编译结果,为重新编译做好准备。
2)编译(compile):将Java源程序编译为字节码文件。
3)测试(test):针对项目中的关键点进行测试,确保项目在迭代开发过程中关键点的正确性。
4)报告:在每一次测试后以标准的格式记录和展示测试结果。
5)打包(package):将一个包含诸多文件的工程封装为一个压缩文件用于安装或部署。Java工程对应jar包,Web工程对应war包。
6)安装(install):在Maven环境下特指将打包的结果——jar包或war包安装到本地仓库中。(主要是看本地有没有,更改jar包后要重新安装)
7)部署:将打包的结果部署到远程仓库或将war包部署到服务器上运行。

-Maven 是自动化构建

Maven的概念

1)POM (项目对象模型)

(核心:学习maven就是学习pom.xml的配置)

2)约定的目录结构
  • 因为有了约定的目录结构才能实现自动化构建
    Hello
    src
    - main
    - - java
    - - resources
    - test
    - - java
    - - resources
    pom.xml
3)坐标

使用如下三个向量在Maven的仓库中唯一的确定一个Maven工程。
[1]groupId:公司或组织的域名倒序+当前项目名称
[2]artifactId:当前项目的模块名称
[3]version:当前模块的版本

4)依赖管理

直接依赖和间接依赖:
如果A依赖B,B依赖C,那么A→B和B→C都是直接依赖,而A→C是间接依赖。

当存在间接依赖的情况时,只有当间接依赖的jar包的依赖范围为compile时,主工程才能对间接依赖的jar进行访问。
只有compile才有可见性。

范围:
依赖的范围
1)compile
  main,test,部署到服务器
例如:对Hello的依赖。主程序、测试程序和服务器运行时都需要用到。
2)test
  test
例如:对junit的依赖。仅仅是测试程序部分需要。
3)provided
  main,test
例如:servlet-api在服务器上运行时,Servlet容器会提供相关API,所以部署的时候不需要。
4)其他:runtime、import、system等。

解决依赖
Maven导入jar包依赖的原则:

  • 最短路径原则


    image.png

    HelloFriend继承Hello,无论MakeFriend继承HelloFriend还是Hello,按最短路径原则,继承短的(就是HelloFriend)

  • 先输入原则


    image.png

这里“声明”的先后顺序指的是dependency标签配置的先后顺序(谁先写依赖谁)。

依赖 排除

properties
// 统一管理(自定义标签,为了方便改)

4.0.0.RELEASE

//引用 $ 加大括号
${spring.version}

5)仓库管理
6)生命周期

Clean lifecycle
Default lifecyle
Site lifecycle

7)继承

子工程继承父工程的依赖

1)指定打包方式为pom(如果该工程为父工程必须设置为pom)

com.atguigu.maven
Parent
pom
1.0-SNAPSHOT

2)
子工程引用父工程,使用指定父工程的坐标, 父工程的坐标



    com.atguigu.maven
    Parent
    1.0-SNAPSHOT

../Parent/pom.xml

3)在父工程中管理依赖,将Parent项目中的dependencies标签,用dependencyManagement标签括起来


    
        
            junit
            junit
            4.0
            test
        
    

4)在子项目中重新指定需要的依赖,删除范围和版本号


    junit
    junit

8)聚合

Maven的继承特性:将各个模块相同的依赖和插件配置提取出来,在简化POM的同时还可以促进各个模块配置的一致性。
Maven的聚合特性:可以帮助我们把项目的多个模块聚合在一起,使用一条命令进行构建,即一条命令实现构建多个项目;

Maven的聚合特性能够帮助把项目的各个模块聚合在一起构建。


    ../MakeFriend
    ../OurFriends
    ../HelloFriend
    ../Hello

Maven可以根据各个模块的继承和依赖关系自动选择安装的顺序

安装Maven 和idea配置

注意
1)配置环境变量
2)pom中配置阿里云镜像
3)配置本地仓库
4)idea中注意 家目录,配置文件目录和本地仓库的目录
5)runner对勾也勾上去,详见指南
6)setting 设置单前工程
settings for new project 设置所有新建工程

基本命令


image.png

有个博主讲Maven的好
https://blog.csdn.net/qq_25827845/article/details/83867717

你可能感兴趣的:(maven(一))