maven高级笔记

简介

maven是一个项目管理工具
依赖管理:maven对项目中jar包的管理过程,真正的jar包放置在仓库中,项目中只需要存放对应的的坐标
一键构建:maven集成了tomcat插件,可以对项目进行编译、测试、打包、安装发布等操作

maven仓库的种类:本地仓库、远程仓库(私服)、中央仓库
仓库之间的关系:当我们启动一个项目的时候,maven会通过pom文件中的坐标去找对应的jar包,默认情况下如果本地仓库没有,会自动去中央仓库下载。若配置了私服会先从私服下载,若私服没有可以从中央仓库下载也可以从本地上传。

mavne 的三套生命周期:清理生命周期、默认生命周期、站点生命周期

解决jar包冲突

导包概念:
直接依赖:项目中直接导入的jar包
传递依赖:项目没有直接依赖的包但是通过直接依赖的包传递到项目中(也就是直接依赖的jar包 它同样有它的依赖包 这些依赖包也会被导入)
原则:
第一申明优先原则(写在上面版本的优先导入)
路径近者优先,直接依赖的路径近
直接排除法(排除某个jar下的依赖包) 推荐使用 因为不怕坐标的位置变动
点此查看视图
在这里插入图片描述
在这里插入图片描述
排除方式:
在这里插入图片描述
dependencyManagement作用
在这里插入图片描述
maven工程是可以分父子依赖关系的。
凡是依赖别的项目后,拿到的别的项目的依赖包,都属于传递依赖。
比如:当前A项目,被B项目依赖。那么我们A项目中所有jar包都会传递到B项目中。
B项目开发者,如果再在B项目中导入一套ssm框架的jar包,对于B项目是直接依赖。
那么直接依赖的jar包就会把我们A项目传递过去的jar包覆盖掉。
为了防止以上情况的出现。我们可以把A项目中主要jar包的坐标锁住,那么其他依赖该项目的项目中,
即便是有同名jar包直接依赖,也无法覆盖。
只用于锁定,不会导包.

工程拆分与聚合思想

将一个项目拆分为多个模块(若要开发新项目需要的话则可以直接使用该模块的坐标)
在这里插入图片描述
案例
创建父子工程
在这里插入图片描述
在这里插入图片描述
工程和模块的关系及继承和依赖的关系
工程和模块都不等于完整的项目,一个完整的项目看的是代码,代码完整就是一个完整的项目
工程天生就是独立的只能使用自己本身的资源。但是后天可以和其他工程或模块形成关联关系
模块天生不是独立的,模块属父工程,可以使用所有父工程的资源
父子之间子模块天生继承于父工程,可以使用父工程的所有资源
子模块之间没有任何关系

父子之间的关系不需要建立,继承是先天的
平级的引用叫依赖、依赖不是先天的需要后天建立

拆分与聚合的3种启动方式
1、直接通过maven的tomcat插件启动父工程
2、先使用tomcat插件的install安装父工程在启动web模块 (此时的web模块代码完整,是一个完整的项目。web模块引用了其他模块的坐标,但是maven仓库中并没有这些jar包会报找不到错误)
在这里插入图片描述
3、使用本地tomcat

私服

卸载安装和启动
在这里插入图片描述
配置文件
在这里插入图片描述
在这里插入图片描述
打开页面
在这里插入图片描述
在这里插入图片描述
仓库种类
在这里插入图片描述
应用
配置登录私服
修改maven 的settings.xml文件在services中添加

<server>
      <id>releases</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
	<server>
      <id>snapshots</id>
      <username>admin</username>
      <password>admin123</password>
    </server>

在这里插入图片描述
配置pom.xml文件

 <distributionManagement>
        <repository>
            <id>releases</id>
            <url>http://localhost:8081/nexus/content/repositories/releases/</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

在这里插入图片描述
测试上传
dao模块
在这里插入图片描述
已上传到私服
在这里插入图片描述
测试下载
将项目打包
在这里插入图片描述
在maven仓库中删除dao包
在这里插入图片描述
通过web模块启动项目发现报错在这里插入图片描述
此时还不能下载需要配置下载
在settings中添加

<profile>   
	<!--profile的id-->
   <id>dev</id>   
    <repositories>   
      <repository>  
		<!--仓库id,repositories可以配置多个仓库,保证id不重复-->
        <id>nexus</id>   
		<!--仓库地址,即nexus仓库组的地址-->
        <url>http://localhost:8081/nexus/content/groups/public/</url>   
		<!--是否下载releases构件-->
        <releases>   
          <enabled>true</enabled>   
        </releases>   
		<!--是否下载snapshots构件-->
        <snapshots>   
          <enabled>true</enabled>   
        </snapshots>   
      </repository>   
    </repositories>  
	 <pluginRepositories>  
    	<!-- 插件仓库,maven的运行依赖插件,也需要从私服下载插件 -->
        <pluginRepository>  
        	<!-- 插件仓库的id不允许重复,如果重复后边配置会覆盖前边 -->
            <id>public</id>  
            <name>Public Repositories</name>  
            <url>http://localhost:8081/nexus/content/groups/public/</url>  
        </pluginRepository>  
    </pluginRepositories>  
  </profile>  

激活

<activeProfiles>
    <activeProfile>dev</activeProfile>
  </activeProfiles>

再次运行 成功
在这里插入图片描述

安装第三包jar包

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值