Maven理解

 关于配置这方面。大家可以看看尚硅谷讲的003-maven-安装和配置_哔哩哔哩_bilibili

问题:1.为什么要引入maven?

            eclipse,idea在构建和打包项目时,结构不同,不能互通。因此,采用maven结构,maven的功能是项目构建和依赖的下载。

           2.如何创建一个maven格式的类或web项目呢?(可以看一下尚硅谷视频,很清晰)

          类结构 如下:         web项目结构如下:

     3.创建一个新的工程时,有一个pom.xml文件,gavp的设置

            g a 代表的是该工程在本地仓库位置(也就是你设置的<localRepository>D:\repository</localRepository>),p 代表的是打包方式

    4.依赖的下载过程?

     首先,会从你的本地仓库中寻找是否有当前依赖,如果没有的话,会去阿里巴巴镜像站中下载依赖。阿里巴巴镜像站其实起的是中间maven仓库的作用。有时候你会发现当你将依赖项的gav属性设置后,还会报错误。当你刷新maven后,错误消失,这是因为你的本地仓库中没有该依赖,它会去远程仓库中下载。    

   5.maven解决冲突依赖的方式?

     1.短路优先原则

     2.依赖路径相同的情况下,先声明的优先。

我本来以为会先将pom文件中的依赖项先读取完,先获取依赖项中的依赖。实际上,maven的依赖获取顺序是一个依赖项和依赖项中的依赖。再接上下一个依赖以及它的依赖项。

6.下载依赖中可能会出现的问题的解决

  

  1. 检查网络连接和 Maven 仓库服务器状态。

  2. 确保依赖项的版本号与项目对应的版本号匹配,并检查 POM 文件中的依赖项是否正确。

  3. 清除本地 Maven 仓库缓存(lastUpdated 文件),因为只要存在lastupdated缓存文件,刷新也不会重新下载。本地仓库中,根据依赖的gav属性依次向下查找文件夹,最终删除内部的文件,刷新重新下载即可!

 7.maven的构建过程以及构建命令周期:

         清理 (clean) ->   编译(compile)  ->  测试 (test) -> 报告(site)  -> 打包(package) -> 部署 (install)

          3个周期 : 1.清理周期 

                             2.默认周期 

                             3.报告周期:site

          在使用默认周期时,  mvn clean install 会将intsall之前的模块自动完成

8.修改插件配置:<build>
   <!-- jdk17 和 war包版本插件不匹配 -->
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>3.2.2</version>
        </plugin>
    </plugins>
</build>

9.不同的功能或工程可能会使用不同版本的依赖项,这些依赖项如何整合起来很麻烦,如何解决这种情况呢?

此时就用了maven工程的继承和聚合关系,通过父类(无代码的实现,删除src且packaging方式为pom) 通过dependenManagement来限制子类的依赖项,子类如果采用不同版本的依赖的话,会覆盖父类的版本号。

聚合体现

(common-service为自己的jar包)

继承体现

(其他子类来引入自己的jar包)

10.jar包的实现原理?

jar包的g a属性可以帮助本地仓库或远程从仓库找到已经部署的包,其实自己的一般工程也是可以部署到maven上,供自己的其他模块来使用的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值