1. Maven 高级

2. 分模块开发与设计

  1. 将与当前层无关的内容清除掉
  2. 在pom.xml将另外层的导入坐标
  3. compile 预编译一下 是否出错
  4. 然后install 打包成坐标

08. Maven 高级 - 图1

3. 聚合

当一个工程构建 其他分模块的工程都会跟随着构建

在主工程管理 中的pom.xml

  1. <!-- 定义该工程用于进行构建管理-->
  2. <packaging>pom</packaging>
  3. <!-- 管理工程的列表-->
  4. <modules>
  5. <!-- 具体的工程名称-->
  6. <module>../ssm_dao</module>
  7. <module>../ssm_pojo</module>
  8. <module>../ssm_service</module>
  9. <module>../ssm_controller</module>
  10. </modules>

4. 继承

在父工程中 定义 声明依赖

  1. <dependencyManagement>
  2. <!-- 所有的依赖包-->
  3. <dependencies>
  4. </dependencies>
  5. </dependencyManagement>

插件继承

  1. <pluginManagement>
  2. <plugins></plugins>
  3. </pluginManagement>

在子工程的pom 中定义父工程

  1. <parent>
  2. <groupId>com.itheima</groupId>
  3. <artifactId>springmvc_validator</artifactId>
  4. <version>1.0-SNAPSHOT</version>
  5. <!-- 父工程的pom文件-->
  6. <relativePath>../ssm/pom.xml</relativePath>
  7. </parent>

在子工程所有的依赖只有父工程有的 都可以不写版本号

5. 属性

定义属性

  1. <!-- 定义属性-->
  2. <properties>
  3. <!-- 标签名为属性名 值为属性值-->
  4. <spring.version>5.1.9.RELEASE</spring.version>
  5. </properties>

使用属性

  1. <dependency>
  2. <groupId>org.springframework</groupId>
  3. <artifactId>spring-context</artifactId>
  4. <!-- 使用${属性名} 来获取值-->
  5. <version>${spring.version}</version>
  6. </dependency>

${version} 是maven内部提供的 当前pom工程的版本号 我们在继承

6. 版本管理

  • snapshot(快照版本)
  • release(发布版本)

7. 资源文件

在POM外的资源文件中使用定义好的属性值

定义属性

  1. <!-- 定义属性-->
  2. <properties>
  3. <!-- 标签名为属性名 值为属性值-->
  4. <jdbc.url>jdbc:mysql://localhost:3306/ssm_db</jdbc.url>
  5. </properties>

开启资源配置加载 如果是test测试目录下的资源文件在<resource>包含在内的标签前面都加上test

  1. <build>
  2. <resource>
  3. <!-- 资源文件的路径-->
  4. <directory>${project.basedir}/src/main/resources</directory>
  5. <filtering>true</filtering>
  6. </resource>
  7. </resources>
  8. </build>

在资源文件中引用

  1. jdbc.driver=com.mysql.jdbc.Driver
  2. jdbc.url=${jdbc.url}
  3. jdbc.username=root
  4. jdbc.password=123456

8. 多环境开发

不同环境使用定义好的多个属性值

  1. <!--创建多环境-->
  2. <profiles>
  3. <profile>
  4. <!-- 定义环境对应的唯一名称-->
  5. <id>pro_eny</id>
  6. <!--定义环境中专用的属性值-->
  7. <properties>
  8. <jdbc.url>jdbc:mysql://localhost:3306/ssm_db</jdbc.url>
  9. </properties>
  10. <!-- 默认环境 true为默认-->
  11. <activation>
  12. <activeByDefault>true</activeByDefault>
  13. </activation>
  14. </profile>
  15. <profile>
  16. <id>dep_env</id>
  17. <properties>
  18. <jdbc.url>jdbc:mysql://localhost:3307/ssm_db</jdbc.url>
  19. </properties>
  20. </profile>
  21. </profiles>

使用环境

mvn install -P 对应环境id

  1. mvn install -P dep_env

9. 跳过测试

  • 在IDE的Maven 中 把test 跳过
  • 命令行 mvm install -D skipTests
  • 08. Maven 高级 - 图2

10. 私服

Nexus

https://help.sonatype.com/repomanager3/download

运行bin下的nexus

  1. nexus /run nexus

启动完成后 localhost:8081

10.1. 私服资源获取

08. Maven 高级 - 图3

10.2. 资源发布

08. Maven 高级 - 图4

或者IDA中 maven的 deploy

id对应本地的maven对应servers的username和password