私服

仓库概念
image.png
Maven仓库:
1.Maven仓库分为本地仓库和远程仓库
2.远程仓库分为3种,分别是中央仓库、私服和其他公共库。
3.Maven的搜索顺序是从本地仓库找,找不到则到远程仓库获取依赖。

什么是私服:
私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网的Maven用户使用。

私服是一台独立的服务器,用于解决团队内部的资源共享与资源同步问题。
使用的是Sonatype公司的一款maven私服产品——Nexus
image.png
image.png

Maven中所引依赖的版本RELEASE与SNAPSHOT的区别:
RELEASE:代表稳定的版本。
SNAPSHOT:代表不稳定、尚处在开发中的版本,也叫快照版本。

依赖范围和依赖传递

什么是依赖传递:
概念:某个项目依赖了另一个项目,另一个项目中jar包会不会传递到这个项目中来。
image.png
依赖范围:
image.png

依赖可选和依赖排除

前提:A项目依赖某个jar包,这个jar包能进行依赖传递的,然后B项目依赖A项目。
依赖可选:
由A项目来决定给不给,通过标签来配置image.png
image.png
在A项目的依赖配置中,通过optional子标签进行配置。它有两个取值:
•true:是可选依赖,不进行依赖传递
•false:默认值,进行依赖传递。
理解:也就是说你(B项目)依赖富婆(B项目),依赖可选就是富婆选择把这个钱(A项目依赖的jar包)给不给你的问题。
依赖排除:
由B项目来决定要不要,通过标签来配置
image.png
理解:也就是说A项目把jar包传递给了B项目,但是你(B项目)这次硬了,选择不要富婆(A项目)的钱(jar包)。

依赖冲突

实际上写相同的版本IDEA不会报错,因为Maven会根据依赖冲突规则来处理。
依赖冲突是指项目依赖了相同Jar的不同版本, Maven已经做好了处理, 我们只要了解Maven的处理规则即可。
image.png

多环境配置与应用

maven提供配置多种环境的设定,帮助开发者使用过程中快速切换环境。
image.png
步骤:
1.创建的maven工程,复制资料jdbc.properties到resources目录下;
2.在pom.xml中配置profiles下配置三个不同的环境:开发,生产,测试;
3.在profile的properties中分别指定不同的jdbc.url属性值;
4.分别激活不同的profile;
5.需要指定buildàresourcesàresource的目录地址和开启替换的参数;
6.运行package命令,查看target中的jar包中jdbc.properties中的url是否不同。

定义多环境

  1. <!--定义各种环境-->
  2. <profiles>
  3. <!--定义一套环境,开发环境,id:取的名字,jdbc.url:将来要替换的内容-->
  4. <profile>
  5. <id>maven_dev</id>
  6. <properties>
  7. <jdbc.url>jdbc:mysql://127.1.1.1:3306/ssm_db</jdbc.url>
  8. </properties>
  9. </profile>
  10. <!--生产环境-->
  11. <profile>
  12. <id>maven_pro</id>
  13. <properties>
  14. <jdbc.url>jdbc:mysql://127.2.2.2:3306/ssm_db</jdbc.url>
  15. </properties>
  16. </profile>
  17. <!--测试环境-->
  18. <profile>
  19. <id>maven_test</id>
  20. <properties>
  21. <jdbc.url>jdbc:mysql://127.3.3.3:3306/ssm_db</jdbc.url>
  22. </properties>
  23. <!--激活当前的配置-->
  24. <activation>
  25. <activeByDefault>true</activeByDefault>
  26. </activation>
  27. </profile>
  28. </profiles>

在多环境代码下写Maven编译的配置:

  1. <!--Maven编译的配置-->
  2. <build>
  3. <resources>
  4. <!-- 指定资源的配置 -->
  5. <resource>
  6. <!-- 必须指定resource所在的目录 -->
  7. <directory>${basedir}/src/main/resources</directory>
  8. <!-- 指定是否替换 -->
  9. <filtering>true</filtering>
  10. </resource>
  11. </resources>
  12. </build>

使用多环境

方式一:直接在maven模块那里点击complie进行编译,会根据image.png来编译相应模块。
方式二:image.png
通过命令语句来编译,这样就不用在配置环境时写

多环境开发的作用:
因为同一个项目在开发阶段,测试阶段和生产环境运行的参数会不同设置多组不同的参数,可以快速在不同的环境参数中进行切换。

继承与聚合

image.png
主要的两个作用:
1.继承:子工程可以继承父工程中所有配置的jar包,子工程无需再次配置,父工程使用dependencies元素配置
2.版本锁定:子工程需要的时候再进行配置,不用指定jar包的版本号,父工程使用dependencyManagement元素配置(但是父工程dependencyManagement里面的jar包不会有(只是爸爸的愿望),当子工程去配置父工程dependencyManagement里面的jar包时不需要写版本,等于帮爸爸的实现了愿望)。

在父模块是一个空模块,打包类型是pomimage.png,只有pom.xml,没有src

父模块聚合所有的子模块,作用:配置在父工程中,聚合用于快速构建maven工程,一次性构建多个项目/模块。
注意事项:参与聚合操作的模块最终执行顺序与模块间的依赖关系有关,与配置顺序无关。

分模块构建

image.png
首先在父模块导入依赖;
创建实体类模块、持久层模块、业务层模块、Web层模块:
image.png