Java web:Maven基础

Maven介绍

  • Maven 是一个项目管理工具,它包含了一个项目对象模型 (POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
  • 能解决的问题:构建工程,管理 jar包,编译代码,自动运行单元测试,打包,生成报表,部署项目,生成 Web 站点
  • 例如:maven工程的大小比普通的工程要小很多,因为maven工程中不放置jar包,只放置jar包坐标节省了很多jar包所占空间
  • maven的依赖管理:
    • maven 工程中不直接将 jar 包导入到工程中
    • 是通过在 pom.xml 文件中添加所需 jar包的坐标,需要用到 jar 包的时候,
    • 到一个专门用于”存放 jar 包的仓库”(maven 仓库)中根据坐标从而找到这些 jar 包,再把这些 jar 包拿去运行。
  • 项目的一键构建:项目从编译、测试、运行、打包、安装 ,部署整个过程都交给 maven 进行管理

Maven的使用

  • Maven的安装
    • 下载:官网 安装:直接解压即可
      • maven目录:
        • bin:存放mavenn 的命令,比如的 mvn tomcat:run
        • boot:存放了一些 maven 本身的引导程序,如类加载器等
        • conf:存放了 maven 的一些配置文件,如 setting.xml 文件
        • lib:存放了 maven 本身运行所需的一些 jar 包
    • maven的使用还需要依赖JDK
      • 配置JAVA_HOME/bin到环境变量path下
      • 配置MAVEN_HOME
      • 配置MAVEN_HOME到/bin到path下
    • 测试maven软件版本:
      • 通过cmd中的:mvn -v 检查maven是否安装成功
  • maven仓库
    • 分类:
      • 本地仓库:用来存储从远程仓库或中央仓库下载的插件和 jar 包,项目使用一些插件或 jar 包,优先从本地仓库查找默认本地仓库位置在${user.dir}/.m2/repository${user.dir}表示 windows 用户目录。
      • 远程仓库:如果本地需要插件或者 jar 包,本地仓库没有,默认去远程仓库下载。远程仓库可以在互联网内也可以在局域网内。公司内经常有。
      • 中央仓库 :在 maven 软件中内置一个远程仓库地址 http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它是由 Maven 团队自己维护,里面存储了非常全的 jar 包,它包含了世界上大部分流行的开源项目构件。
    • maven本地仓库的配置:
      • MAVE_HOME/conf/settings.xml 文件中配置本地仓库位置在这里插入图片描述
  • maven工程的认识:
    • 一个maven工程的目录结构:
      在这里插入图片描述
      在这里插入图片描述
    • 如果是普通的java工程就没有webapp目录

maven常用命令

  • maven工程的运行:进入 maven 工程目录(当前目录有 pom.xml 文件),运行 tomcat:run 命令。
  • 分类:
    • compile:编译命令,作用是将 src/main/java 下的文件编译为 class 文件输出到 target目录下。
    • test:测试命令 mvn test,会执行 src/test/java 下的单元测试类。
    • clean:清理命令,执行 clean 会删除 target 目录及内容。
    • package:打包命令,对于 java 工程执行 package 打成 jar 包,对于 web 工程打成 war包。
    • install:安装命令,执行 install 将 maven 打成 jar 包或 war 包发布到本地仓库。
    • 注意:当后面的命令执行时,前面的操作过程也都会自动执行,
  • maven指令的生命周期:maven 对项目构建过程分为三套相互独立的生命周期
    • Clean Lifecycle 在进行真正的构建之前进行一些清理工作
    • Default Lifecycle 构建的核心部分,编译,测试,打包,部署等等
    • Site Lifecycle 生成项目报告,站点,发布站点
  • maven 的概念模型:
    • 项目对象模型 (Project Object Model):一个 maven 工程都有一个 pom.xml 文件,通过 pom.xml 文件定义项目的坐标、项目依赖、项目信息、插件目标等。
    • 依赖管理系统(Dependency Management System):通过 maven 的依赖管理对项目所依赖的 jar 包进行统一管理。通过在 pom.xml 中定义依赖即可
    • 一个项目生命周期(Project Lifecycle):使用 maven 完成项目的构建,项目构建包括:清理、编译、测试、部署等过程,maven 将这些过程规范为一个生命周期
    • 插件(plugin)目标(goal):maven 管理项目生命周期过程都是基于插件完成的。
  • idea开发maven项目:
    • 配置idea中的maven:在这里插入图片描述
    • 使用骨架创建好一个maven项目
    • 创建servlet要配置依赖jar包: servlet-api-xxx.jar 包放进来,作为 maven 工程应当添加 servlet 的坐标,从而导入它的 jar
    • pom.xml 文件添加坐标:添加<dependency>依赖
    • 添加tomcat7插件:在这里插入图片描述
      • 点击 idea 最右侧 Maven Projects,然后点击M按钮输入mvn tomcat7:run 命令直接运行项目
      • 不知道jar坐标时:从maven中央仓库搜索
  • 依赖范围:
    • 默认引入 的 jar 包 ------- compile 【默认范围 可以不写】(编译、测试、运行 都有效 )
    • servlet-api 、jsp-api ------- provided (编译、测试 有效, 运行时无效 防止和 tomcat 下 jar 冲突)
    • jdbc 驱动 jar 包 ---- runtime (测试、运行 有效 )
    • junit ----- test (测试有效)
    • 依赖范围由强到弱的顺序是:compile>provided>runtime>test
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值