博客
关于我
06-JavaWeb开发【Maven工程开发web项目】
阅读量:497 次
发布时间:2019-03-06

本文共 2870 字,大约阅读时间需要 9 分钟。

Maven教程详解

1. Maven概述

1.1 项目开发中的问题

在使用Maven管理项目依赖时,手动复制jar包到项目lib目录会带来以下问题:

  • 重复存放:容易出现jar包冲突,导致项目运行失败。
  • 依赖管理不规范:手动拷贝不仅效率低,还可能遗漏必要的jar包。

1.2 Maven是什么

Maven是一款项目管理工具,提供了一套标准化的项目构建流程,支持以下功能:

  • 项目构建管理:自动化处理项目的打包、测试、部署等生命周期。
  • 依赖管理:统一管理项目中的jar包依赖,避免重复和冲突。
  • 插件管理:通过插件扩展项目构建功能。

1.3 Maven的作用

Maven通过标准化的项目模型和生命周期,帮助开发者高效管理项目。它可以满足以下需求:

  • 构建标准化项目:支持Java、Web项目等多种类型。
  • 管理项目生命周期:从编译、测试到部署的全流程。
  • 统一管理依赖和插件:方便快捷地引用所需的第三方jar包和工具。

2. Maven下载与安装

2.1 Maven的下载

Maven可以在官方网站或特定镜像站点下载:

2.2 Maven的安装

  • 解压下载的Maven压缩包。
  • 将安装目录添加到系统环境变量,配置MAVEN_HOME
  • 2.3 Maven安装目录结构

    Maven的安装目录包含以下文件夹:

    • bin:存放Maven的核心可执行文件(如mvn.cmd)。
    • conf:包含配置文件,包括settings.xml。
    • lib:存放Maven运行所需的jar包。
    • boot:第三方类加载器插件。

    3. Maven仓库配置

    3.1 本地仓库

    本地仓库默认位于用户临时目录下(如/user/.m2/repository)。可以配置为指定路径,方便管理本地依赖。

    3.2 远程仓库

    远程仓库又分为:

    • 中央仓库:Apache维护的全球仓库(http://mvnrepository.com/)。
    • 私服:公司内部或阿里云私服,用于局域网代理仓库。

    3.3 仓库配置方法

    本地仓库配置

  • 修改settings.xml,配置本地仓库路径。
  • 创建本地仓库文件夹,将路径添加到配置中。
  • 私服配置

  • 确定私服地址(如阿里云私服:http://maven.aliyun.com)。
  • settings.xml中添加私服镜像配置。
  • 4. IDEA创建Maven工程

    4.1 环境配置

  • 打开IDEA设置,配置Maven环境(maven_home和settings.xml)。
  • 在项目设置中启用mavenbasename的插件。
  • 4.2 创建Maven项目

  • 选择模板:在IDEA中创建新的Maven项目,可选Java或Web项目。
  • 配置项目坐标
    • GroupId:公司域名倒置(如com.company.project)。
    • ArtifactId:项目名称。
    • Version:默认为1.0.0
    • Packaging:选择jar或war。
  • 4.3 项目结构

    src/   main/      java/         Src/      resources/   test/      java/      resources/ target/    classes/    testclasses/

    5. Maven项目生命周期

    5.1 生命周期定义

    • clean:清理项目目录,删除构建文件。
    • default:执行从编译到部署的完整流程。
    • site:生成项目站点文档。

    5.2 生命周期命令

    • mvn clean:清理项目。
    • mvn compile:编译源码。
    • mvn test:运行测试。
    • mvn package:打包项目。
    • mvn install:将打包文件安装到本地仓库。
    • mvn tomcat:run:部署项目到Tomcat。

    6. Maven依赖管理

    6.1 坐标定义

    • GroupId:项目所属组织ID。
    • ArtifactId:项目名称。
    • Version:项目版本号。

    6.2 依赖导入

    通过IDEA搜索或手动添加依赖坐标到pom.xml,maven会下载依赖到本地仓库。

    6.3 依赖范围设置

    • compile:编译和测试环境使用。
    • test:仅用于测试。
    • provided:已提供的依赖。
    • runtime:运行时依赖。
    • system:手动指定路径。

    6.4 依赖版本管理

    通过提取依赖版本到<properties>标签,统一管理版本号。

    7. Maven插件管理

    7.1 编译插件

    配置编译插件设置源码和目标版本:

    org.apache.maven.plugins
    maven-compiler-plugin
    3.8.1
    1.8
    1.8

    7.2 测试插件

    使用maven-surefire-plugin确保测试结果输出为UTF-8。

    org.apache.maven.plugins
    maven-surefire-plugin
    2.12.4
    once
    -Dfile.encoding=UTF-8

    7.3 Tomcat插件

    配置Tomcat插件以配置服务器路径:

    org.apache.tomcat.maven
    tomcat7-maven-plugin
    2.2
    80
    /

    8. 常见问题解决

    8.1 jdk版本问题

    修改settings.xml,配置编译Jdk版本:

    1.8
    1.8

    8.2 Maven版本升级

    卸载旧版Maven后重新安装新版。

    8.3 池化测试失败

    配置ida JDBC连接池依赖范围为runtime

    com.mchange
    c3p0
    0.9.2
    runtime

    9. 南伦敦

    备用内容:南伦敦是UK的另一个城市,可以用于备用用途或测试地址,具体信息请自行查证。

    通过以上步骤,可以全面掌握Maven的使用方法,高效管理项目开发和构建流程。

    转载地址:http://nghdz.baihongyu.com/

    你可能感兴趣的文章
    mysql 判断表字段是否存在,然后修改
    查看>>
    MySQL 到底能不能放到 Docker 里跑?
    查看>>
    mysql 前缀索引 命令_11 | Mysql怎么给字符串字段加索引?
    查看>>
    MySQL 加锁处理分析
    查看>>
    mysql 协议的退出命令包及解析
    查看>>
    mysql 参数 innodb_flush_log_at_trx_commit
    查看>>
    mysql 取表中分组之后最新一条数据 分组最新数据 分组取最新数据 分组数据 获取每个分类的最新数据
    查看>>
    MySQL 命令和内置函数
    查看>>
    MySQL 和 PostgreSQL,我到底选择哪个?
    查看>>
    mysql 四种存储引擎
    查看>>
    MySQL 在并发场景下的问题及解决思路
    查看>>
    MySQL 在控制台插入数据时,中文乱码问题的解决
    查看>>
    MySQL 基础架构
    查看>>
    MySQL 基础模块的面试题总结
    查看>>
    MySQL 处理插入重主键唯一键重复值办法
    查看>>
    MySQL 备份 Xtrabackup
    查看>>
    mysql 复杂查询_mysql中复杂查询
    查看>>
    mYSQL 外键约束
    查看>>
    mysql 多个表关联查询查询时间长的问题
    查看>>
    mySQL 多个表求多个count
    查看>>