note_maven的概念,作用


  • maven的概念:

它是一个基于java平台的自动化构建工具(make->ant->maven->gradle)

  • maven的作用:

a.管理jar

i.增加第三方jar(commons-fileupload.jar commons-io.jar)

ii.管理jar包之间的一览关系(例如当你告诉了使用commons-fileupload.jar,它发现这个包依赖于commons-io.jar时,它会自动下载依赖关联的所有jar,并且不会冲突)

b.将项目拆分成若干个模块

当一个项目有UI,Service,Dao层,并且每层代码很多时,maven可以将这三个层拆分为模块,同时可以将多个模块(/项目)合并为一个项目

  • maven的具体用处:
  • 清理 删除编译的结果,为重新编译做准备
  • 编译 java编译class
  • 测试 针对于项目中的关键点进行测试,亦可用 项目中的测试代码 去测试开发代码
  • 报告 将测试的结果进行显示
  • 打包 将项目中包含的多个文件 压缩成一个文件,用于安装或部署(java项目->jar包,web项目->war包)
  • 安装 将打成的包,放到本地仓库,供其他项目使用
  • 部署 将打成的包,放到服务器上准备运行(将java,ja,jsp等各个文件进行筛选组装,变成一个可以直接运行的项目)
  • 自动化工具:

将原材料(java,js,css,html)->产品(可发布项目)

  • 本地仓库:
  • 在Maven中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件.
  • Maven在某个统一的位置存储所有项目的共享的构件,这个统一的位置,我们就称之为仓库.(仓库就是存放依赖和插件的地方)
  • 任何的构件都有唯一的坐标,Maven根据这个坐标定义了构件在仓库中的唯一存储路径,

    参考该文章
    如果在本地仓库找不到jar包,那么它会联网去远程仓库(其中有中央仓库,中央仓库镜像,私服)下载,中央仓库是由那啥组织维护的(具体忘了)

  • 何为依赖:

项目里面A 依赖 B 可以在pom.xml中通过dependency来配置:

        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.0version>
            <scope>testscope>
        dependency>

当然也可以配置多个依赖

依赖的范围,依赖的有效性:

在不同的阶段中,所使用的classpath是不同的,在pom.xml中配置:

在这里插入图片描述

compile(默认) test provided

compiletestprovided
主程序(main)×
测试程序(test)
部署(运行)××

maven在编译.测试,运行项目时.各自使用一套classpath

相关