Maven的全面讲解及如何安装使用

Maven是一种流行的Java项目管理工具,可用于构建、测试、打包和部署Java应用程序。本文将介绍Maven的概念、安装配置、使用方法、生命周期以及IDEA集成Maven的方法。

Maven的概念

Maven是一种基于项目对象模型(POM)的构建工具。POM是一个XML文件,其中包含了项目的信息和配置,如项目名称、版本号、依赖库、构建目标等。Maven通过读取POM文件来管理和构建Java项目。

Maven的主要功能包括:

  • 依赖管理:Maven可以自动下载和管理项目所需的依赖库。
  • 构建管理:Maven可以自动执行项目的构建、测试、打包和部署。
  • 生命周期管理:Maven定义了一系列构建阶段和插件,可以自动执行项目构建的不同阶段。
  • 管理多模块项目:Maven可以管理多个子项目,可以同时构建和测试多个项目。

 Maven相关概念掌握:

Maven 使用约定而不是配置,意味着开发者不需要再自己创建构建过程。

开发者不需要再关心每一个配置细节。Maven 为工程提供了合理的默认行为。当创建 Maven 工程时,Maven 会创建默认的工程结构。开发者只需要合理的放置文件,而在 pom.xml 中不再需要定义任何配置。

举例说明,下面的表格展示了工程源码文件、资源文件的默认配置,和其他一些配置。假定 ${basedir} 表示工程目录:

Maven的安装及配置

(1)Maven的安装配置非常简单。首先需要在官网(https://maven.apache.org/)下maven的安装包 例如:apache-maven-3.3.9-bin.zip

(2)解压安装包,解压到一个目录,非中文目录。

  • 子目录bin:执行程序,主要是mvn.md
  • 子目录conf :maven工具本身的配置文件 settings.xml

(3)配置环境变量

在系统的环境变量中,指定一个M2_HOME的名称, 指定它的值是maven工具安装目录,bin之前的目录M2_HOME=D: work\maven_work\apache-maven-3.3.9,再把M2_HOME加入到path之中,在所有路径之前加入 %M2_HOME%\bin
(4)验证,在终端命令行中,执行 mvn-v


注意:需要配置JAVA_HOME,指定jdk路径 

Maven的使用

1. pom:项目对象模型

即Project Object Model项目对象模型。Maven 把一个项目的结构和内容抽象成一个模型,在xml文件中进行声明,以方便进行构建和描述,它被放在工程根目录下,文件命名为 pom.xml。pom.xml是 Maven 的灵魂。所以,maven 环境搭建好之后,所有的学习和操作都是关于pom.xml的。

POM举例:

<project xmlns="http://maven.apache.org/POM/4.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
   http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>com.companyname.project-group</groupId>
   <artifactId>project</artifactId>
   <version>1.0</version>

</project>

需要说明的是每个工程应该只有一个 POM 文件。

  • 所有的 POM 文件需要 project 元素和三个必须的字段:groupId, artifactId,version
  • 在仓库中的工程标识为 groupId:artifactId:version
  • POM.xml 的根元素是 project,它有三个主要的子节点:

2. 约定的目录结构

 下面是一个项目工程目录:

3. 生命周期

 4. 仓库

(1)仓库是什么:仓库是存放东西的,存放maven使用的jar 和我们项目使用的jar。在 Maven 的术语中,仓库是一个位置(place),例如目录,可以存储所有的工程 jar 文件、library jar 文件、插件或任何其他的工程指定的文件。

  • maven使用的插件(各种jar)
  • 我们项目使用的jar(第三方的工具)

(2)仓库的分类:

  • 本地仓库,就是你的个人计算机上的文件夹,存放各种jar
  • 远程仓库,在互联网上的,使用网络才能使用的仓库
    • 中央仓库,最权威的, 所有的开发人员都共享使用的一个集中的仓库,中央仓库的地址:https : //repo .maven .apache .org
    • 中央仓库的镜像,就是中央仓库的备份,在各大洲,重要的城市都是镜像。
    • 私服,在公司内部,在局域网中使用的,不是对外使用的。

(3)仓库的使用,maven仓库的使用不需要人为套与。

 如:

开发人员需要使用mysql驱动--->maven首先查本地仓库--->私服--->镜像--->中央仓库

 

5. 外部依赖

Maven的依赖管理使用的是 Maven - 仓库 的概念。但是如果在远程仓库和中央仓库中,依赖不能被满足,如何解决呢? Maven 使用外部依赖的概念来解决这个问题。

  • 在 src 文件夹下添加 lib 文件夹
  • 复制任何 jar 文件到 lib 文件夹下。我们使用的是 ldapjdk.jar ,它是为 LDAP 操作的一个帮助库

现在,我们的工程结构应该像下图一样:

 将这个外部依赖添加到 maven pom.xml 中。

 <dependency>
      <groupId>ldapjdk</groupId>
      <artifactId>ldapjdk</artifactId>
      <scope>system</scope>
      <version>1.0</version>
      <systemPath>${basedir}\src\lib\ldapjdk.jar</systemPath>
 </dependency>

6. 依赖范围 

 7. mvn compile 编译

执行mvn compile,结果是在项目的根目录下生成target目录(结果目录),maven编译的java程序,最后的class文件都放在target目录中

 常用操作

1. 属性设置:设置maven的常用属性

 

 2. 全局变量

自定义的属性

1.在<properties> 通过自定义标签声明变量(标签名就是变量名)
2.在pom.xml文件中的其它位置,使用 ${标签名}使用变量的值
自定义全局变量一般是定义依赖的版本号, 当你的项目中要使用多个相同的版本号,先使用全局变量定义, 在使用${变量名}

 3. resource资源插件

 作用: mybatis课程中会用到这个作用
1. 默认没有使用resources的时候, maven执行编译代码时, 会把src/main/resources目录中的文件拷贝到target/classes目录中。对于src/main/java目录下的非java文件不处理,不拷贝到target/classes目录中
2. 我们的程序有需要把一些文件放在src/main/java目录中,当我在执行java程序时,需要用到src/main/java日录中的文件需要告诉maven,在 mvn compile src/main/java目录下的程序时,需要把文件一同拷贝到tarqet/classes目录中,此时就需要在 <build>中加入 <resources>。

idea集成Maven

1. 在idea中设置maven ,让idea和maven结合使用。

idea中内置了maven ,一般不使用内置的,因为用内置的修改maven的设置不方便。使用自己安装的maven,需要覆盖idea中的默认的设置。让idea指定maven安装位置等信息

 2. 常用工程模版创建项目
maven-archetype-quickstart :普通的java项目

maven-archetype-webapp : web工程
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值