126. maven补充

安装

注意:解压压缩包到本地磁盘(解压目录不要有中文、空格)

目录讲解

  • bin:可执行的脚本命令
  • conf:配置文件
  • lib:maven项目运行需要的jar包

maven的好处

maven项目找jar包的过程

maven好处如何实现

maven的两大核心

依赖管理:对jar包管理过程
项目构建:项目在编码完成后,对项目进行编译、测试、打包、部署等一系列操作都通过 命令 实现

实例

通过maven命令将web项目发布到tomcat:

1
mvn tomcat:run

maven安装、配置本地仓库

maven程序安装前提:maven程序java开发,它的运行依赖:jdk。

maven的下载安装

jdk需要有:JAVE_HOME

  1. 官网下载
  2. 解压到本地磁盘(解压目录不要有中文、空格)
  3. 配置环境变量
    1. MAVEN_HOME: bin目录上一级
    2. MAVEN_HOME 环境变量配置到 path 环境变量中: %MAVEN_HOME%\bin
  4. 测试
    1
    mvn -v

配置本地仓库

在本地磁盘上存储各种各样的jar包

仓库类型

配置本地仓库

  1. 找到jar包仓库压缩包(配套文件中的 bos_repository.zip
  2. 解压到本地磁盘
  3. 配置本地仓库:让maven程序知道仓库在哪(maven-conf-settings.xml)
    1
    <localRepository>[改为自己的本地仓库目录]</localRepository>

maven标准目录结构

对项目文件进行细分:

  • src: 项目源码
  • pom.xml: project object module(maven项目核心配置文件)
  • target: src项目源码编译完成存到target文件夹中(不属于maven项目标准目录结构)

maven常用命令

  • clean: 清理

    将项目根目录target目录清理

  • compile: 编译

    将项目中 .java文件编译为 .class文件

  • test: 单元测试

    将项目根目录下 src/test/java 目录下的单元测试类都会执行
    单元测试类名有要求: XxxxTest.java

  • package: 打包
    web project — war包
    java project – jar包

    将项目打包,导报项目根目录下target目录

  • install: 安装

    解决本地多个项目公用一个jar包
    打包到本地仓库

maven项目的生命周期

在maven中存在“三套”生命周期,每一套生命周期相互独立,互不影响。

  1. CleanLifeCycle: 清理生命周期
    • clean
  2. defaultLifeCycle: 默认生命周期
    • compile
    • test
    • package
    • install
    • deploy
  3. siteLifeCycle: 站点生命周期
    • site

在一套生命周期内,执行后面的命令前面的命令会自动执行。

创建maven项目

  • Group Id: 公司名称(公司域名倒写)
  • Artifact Id: 项目名称
  • Version: 版本:
    • SNAPSHOT: 测试版本
    • RELEASES: 正式版本(发行版本)
  • Packaging: 打包方式
    • jar: java project
    • war: web project
    • pom: 父工程

依赖范围

依赖范围 对于编译classpath有效 对于测试classpath有效 对于运行classpath有效 例子
compile Y Y Y spring-core
test - Y - Junit
provided Y Y - servlet-api
runtime - Y Y JDBC驱动
system Y Y - 本地的,maven仓库之外的类库

添加依赖范围:默认compile
privided: 运行部署到tomcat不再需要

如果将 servlet-api.jar 设置为 compile,打包后包含 servlet-api.jar,war包部署到tomcat跟tomcat中存在的 servlet-api.jar 冲突,导致运行失败。

总结:如果使用到tomcat自带的jar包,一定要将项目依赖范围设置为:provided