Maven(上):Maven介绍、安装配置及工程构建

1. Maven介绍

Maven 是一款为 Java 项目管理构建、依赖管理的工具(软件),使用 Maven 可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。

Maven就是一个软件,掌握安装、配置、以及基本功能 (项目构建、依赖管理) 的理解和使用即可!

  • 依赖管理:

    Maven 可以管理项目的依赖,包括自动下载所需依赖库、自动下载依赖需要的依赖并且保证版本没有冲突、依赖版本管理等。通过 Maven,我们可以方便地维护项目所依赖的外部库,避免版本冲突和转换错误等,而我们仅仅需要编写配置即可。

  • 构建管理:

    项目构建是指将源代码、配置文件、资源文件等转化为能够运行或部署的应用程序或库的过程

    Maven 可以管理项目的编译、测试、打包、部署等构建过程。通过实现标准的构建生命周期,Maven 可以确保每一个构建过程都遵循同样的规则和最佳实践。同时,Maven 的插件机制也使得开发者可以对构建过程进行扩展和定制。主动触发构建,只需要简单的命令操作即可。

2. Maven安装和配置

2.1 Maven安装

下载地址:https://maven.apache.org/docs/history.html

各个工具选用版本:

工具 版本
Maven 3.8.8
JDK 17
IDEA 2022.2

安装条件: maven需要本机安装java环境、必需包含java_home环境变量!

软件安装: 右键解压即可(绿色免安装)

软件结构:

bin:含有Maven的运行脚本

boot:含有plexus-classworlds类加载器框架

conf:含有Maven的核心配置文件

lib:含有Maven运行时所需要的Java类库

LICENSE、NOTICE、README.txt:针对Maven版本,第三方软件等简要介绍

2.2 Maven环境配置

  • 配置MAVEN_HOME

Maven(上):Maven介绍、安装配置及工程构建_第1张图片

  • 配置path
    Maven(上):Maven介绍、安装配置及工程构建_第2张图片
  • 测试配置是否成功
mvn -v 
# 如果输出版本信息说明配置成功

2.3 Maven环境配置

我们需要需改maven/conf/settings.xml配置文件,来修改maven的一些默认配置。我们主要休要修改的有三个配置:

1.依赖本地缓存位置(本地仓库位置)

2.maven下载镜像

3.maven选用编译项目的jdk版本

  • 配置本地仓库地址

      
     <localRepository>D:\ProgramData\maven-repositorylocalRepository>
    
  • 配置国内阿里镜像

    
    <mirror>
        <id>alimavenid>
        <name>aliyun mavenname>
        <url>http://maven.aliyun.com/nexus/content/groups/public/url>
        <mirrorOf>centralmirrorOf>
    mirror>
    
  • 配置jdk17版本项目构建

    
    <profile>
        <id>jdk-17id>
        <activation>
          <activeByDefault>trueactiveByDefault>
          <jdk>17jdk>
        activation>
        <properties>
          <maven.compiler.source>17maven.compiler.source>
          <maven.compiler.target>17maven.compiler.target>
          <maven.compiler.compilerVersion>17maven.compiler.compilerVersion>
        properties>
    profile>
    

2.4 IDEA配置本地Maven

将Maven home path 、User settings file、Local repository改为自己本地maven的路径即可。
Maven(上):Maven介绍、安装配置及工程构建_第3张图片
注意

  • 如果本地仓库地址不变化,只有一个原因,就是maven/conf/settings.xml配置文件编写错误!仔细检查即可!

  • 一定保证User settings file对应之前修改的settings.xml的路径,若 不一致,选中Override复选框,手动选择配置文件

3. 基于IDEA创建Maven工程

3.1 Maven工程的GAVP

Maven工程相对之前的项目,多出一组gavp属性,gav需要我们在创建项目的时候指定,p有默认值。

Maven 中的 GAVP 是指 GroupId、ArtifactId、Version、Packaging 等四个属性的缩写,其中前三个是必要的,而 Packaging 属性为可选项。这四个属性主要为每个项目在maven仓库中做一个标识,类似人的姓名!有了具体标识,方便后期项目之间相互引用依赖等!

GAVP遵循一下规则:

  • GroupID 格式:com.{公司/BU }.业务线.[子业务线],最多 4 级。

    说明:{公司/BU} 例如:alibaba/taobao/tmall/aliexpress 等 BU 一级;子业务线可选。

    举例:com.taobao.tddl 或 com.alibaba.sourcing.multilang

  • ArtifactID 格式:产品线名-模块名。语义不重复不遗漏,先到仓库中心去查证一下。

    举例:tc-client / uic-api / tair-tool / bookstore

  • Version版本号格式推荐:主版本号.次版本号.修订号

    1) 主版本号:当做了不兼容的 API 修改,或者增加了能改变产品方向的新功能。

    2) 次版本号:当做了向下兼容的功能性新增(新增类、接口等)。

    3) 修订号:修复 bug,没有修改方法签名的功能加强,保持 API 兼容性。

    例如: 初始→1.0.0 修改bug → 1.0.1 功能调整 → 1.1.1等

  • Packaging定义规则:

    指示将项目打包为什么类型的文件,idea根据packaging值,识别maven项目类型!

    packaging 属性为 jar(默认值),代表普通的Java工程,打包以后是.jar结尾的文件。

    packaging 属性为 war,代表Java的web工程,打包以后.war结尾的文件。

    packaging 属性为 pom,代表不会打包,用来做继承的父工程。

3.2 Idea构建Maven Java SE工程

  • Name:maven工程名
  • Location:工程地址
  • Language:语言,选Java
  • Build system:构建工具,选maven
  • JDK:Java版本,我们选17
  • Groupid:安装上述规则制定
  • Artifactid:一般与工程名相同

Maven(上):Maven介绍、安装配置及工程构建_第4张图片

创建工程之后,若第一次使用maven,或者使用的是新的本地仓库,idea右下角会出现进度条,表示maven正在下载相关插件,等待下载完毕,进度条消失即可。

验证maven工程是否创建成功,当创建完毕maven工程之后,idea中会自动打开Maven视图,如下图:

  • Lifecycle:maven工程的生命周期
  • Plugins:maven工程的相关插件
  • Dependencies:maven工程的相关依赖,这里因为我的项目目前还没有导入依赖,因此没有显示。

Maven(上):Maven介绍、安装配置及工程构建_第5张图片

4. 基于IDEA进行Maven工程构建

4.1 构建概念

项目构建是指将源代码、依赖库和资源文件等转换成可执行或可部署的应用程序的过程,在这个过程中包括编译源代码、链接依赖库、打包和部署等多个步骤。

项目构建是软件开发过程中至关重要的一部分,它能够大大提高软件开发效率,使得开发人员能够更加专注于应用程序的开发和维护,而不必关心应用程序的构建细节。

同时,项目构建还能够将多个开发人员的代码汇合到一起,并能够自动化项目的构建和部署,大大降低了项目的出错风险和提高开发效率。常见的构建工具包括 Maven、Gradle、Ant 等。

4.2 命令行构建

命令 描述
mvn compile 编译项目,生成target文件
mvn package 打包项目,生成jar或war文件
mvn clean 清理编译或打包后的项目结构
mvn install 打包后上传到maven本地仓库
mvn deploy 只打包,上传到maven私服仓库
mvn site 生成站点
mvn test 执行测试源码

war包打包插件和jdk版本不匹配:pom.xml 添加以下代码即可

<build>
    
    <plugins>
        <plugin>
            <groupId>org.apache.maven.pluginsgroupId>
            <artifactId>maven-war-pluginartifactId>
            <version>3.2.2version>
        plugin>
    plugins>
build>

例如:

#清理
mvn clean
#清理,并重新打包
mvn clean package
#执行测试代码
mvn test

4.3 基于IDEA构建

  • clean:清理
  • compile:编译
  • test:测试
  • package:打包
  • install:安装
  • deploy:部署

Maven(上):Maven介绍、安装配置及工程构建_第6张图片
注意:打包(package)和安装(install)的区别是什么

打包是将工程打成jar或war文件,保存在target目录下

安装是将当前工程所生成的jar或war文件,安装到本地仓库,会按照坐标保存到指定位置。

4.4 构建插件、命令、生命周期命令之间关系

  • 构建生命周期

    当我们执行package命令也会自动执行compile命令!

    这种行为就是因为构建生命周期产生的!构建生命周期可以理解成是一组固定构建命令的有序集合,触发周期后的命令,会自动触发周期前的命令!!!

    构建周期作用:会简化构建过程

    例如:项目打包时,我们只是用package即可,前面的过程无需执行。

    主要两个构建生命周期:

    • 清理周期:主要是对项目编译生成文件进行清理

      包含命令:clean

    • 默认周期:定义了真正构件时所需要执行的所有步骤,它是生命周期中最核心的部分

      包含命令:compile - test - package - install - deploy

  • 插件、命令、周期三者关系(了解)

    周期→包含若干命令→包含若干插件

    使用周期命令构建,简化构建过程!

    最终进行构建的是插件!

你可能感兴趣的:(Maven,maven,java)