【MAVEN学习 | 第2篇】Maven工程创建及核心功能

在这里插入图片描述

一. 基于IDEA的Maven工程创建

1.1 Maven工程GAVP属性

Maven工程有一组gavp属性,gav需要在创建项目的时指定,p有默认值,后期可通过配置文件修改。

G:GroupId
A:ArtifactId
V:Version
P:Packaging
前三个是必要的,而 Packaging 属性为可选项。

(1)GroupID 格式

com.{公司/BU }.业务线.[子业务线],最多 4 级

	例:com.taobao.tddl 或 com.alibaba.sourcing.multilang 
(2)ArtifactID 格式

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

	例:tc-client / uic-api / tair-tool / bookstore
(3)Version版本号格式

主版本号.次版本号.修订号 1.0.0

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

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

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

    例: 初始→1.0.0  修改bug → 1.0.1  功能调整 → 1.1.1等
(4)Packaging定义规则

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

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

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

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

1.2 IDEA构建Maven JavaSE工程

在这里插入图片描述
注:此处version是一个默认值1.0-SNAPSHOT,自己后期可以在项目中修改!

1.3 IDEA构建Maven JavaEE工程

(1)手动创建
  • 根据上面的步骤创建一个 Maven JavaSE 工程

  • 手动添加Web项目结构文件(结构和命名固定
    在这里插入图片描述

  • 修改pom.xml文件打包方式

    <!-- 在pom.xml文件中修改 <packaging> -->
    <packaging>war</packaging>
    
  • 刷新和校验
    在这里插入图片描述
    项目的webapp文件夹出现小蓝点,代表成功!!

(2)插件方式创建(推荐)
  • 安装插件JBLJavaToWeb
    在这里插入图片描述
    在这里插入图片描述若没有 install 则点击安装

  • 创建一个 Maven JavaSE 工程

  • 右键、使用插件补全web项目
    在这里插入图片描述

二. Maven 核心功能:功能依赖和构建管理

2.1 依赖管理和配置

定义 POM 文件,Maven 能够自动解析项目的依赖关系,并通过 Maven 仓库自动下载和管理依赖,从而避免了手动下载可能引发的版本冲突问题。

  • maven项目信息属性配置和读取:GAVP属性
  • 依赖管理和添加:
    <dependencies>
    <!-- 引入具体的依赖包 -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
        <!--
            生效范围
            - compile :main目录 test目录  
            - provided:main目录 test目录 
            - runtime: 打包运行          
            - test:    test目录          
         -->
        <scope>runtime</scope>
    </dependency>
    </dependencies>
    
  • 依赖版本提取和维护:
    <!--声明版本-->
    <properties>
      <!--内部制定版本号-->
      <junit.version>4.11</junit.version>
    </properties>
    
    <dependencies>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <!--引用properties声明版本 -->
        <version>${junit.version}</version>
      </dependency>
    </dependencies>
    

2.2 依赖冲突

当直接引用或者间接引用出现了相同的jar包! 这时呢,一个项目就会出现相同的重复jar包,这就算作冲突!

在这里插入图片描述

  • 解决依赖冲突方式:
    • 短路优先原则(第一原则)

        A—>B—>C—>D—>E—>X(version 0.0.1)
      
        A—>F—>X(version 0.0.2)
      
        则A依赖于X(version 0.0.2)。
      
    • 依赖路径长度相同情况下,则“先声明优先”(第二原则)

        A—>E—>X(version 0.0.1)
      
        A—>F—>X(version 0.0.2)
      
        在<depencies></depencies>中,先声明的,路径相同,会优先选择!
      

2.3 依赖导入失败解决方法

(1)检查网络连接和 Maven 仓库服务器状态。
(2)确保依赖项的版本号与项目对应的版本号匹配,并检查 POM 文件中的依赖项是否正确。
(3)清除本地 Maven 仓库缓存(lastUpdated 文件),因为只要存在lastupdated缓存文件,刷新也不会重新下载。 ——》 直接在本地仓库中搜索以 .lastUpdated 结尾的文件,删除即可!

2.4 构建管理和插件配置

(1)构建
  • 项目构建是指将源代码、依赖库和资源文件等转换成可执行或可部署的应用程序的过程
(2)构建生命周期
打包: mvn clean package
重新编译: mvn clean compile
本地部署: mvn clean install 

最终进行构建的是插件,插件配置

<build>
   <!-- jdk17 和 war包版本插件不匹配 -->
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.2.2</version>
        </plugin>
    </plugins>
</build>
  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值