Maven入门到掌握(一套打通任督二脉)

1:分模块开发

  • 意义:

  • 步骤

    • 创建新模块

    • 在各个模块中导入所需要的那个模块的依赖,例

      a<!--    依赖pojo模块-->
      
          <dependency>
            <groupId>com.ysj</groupId>
            <artifactId>maven_03_pojo</artifactId>
              <version>1.0-SNAPSHOT</version>
          </dependency>
      
    • 将要导入的模块安装(install)到本地仓库,否则编译都过不了

Maven入门到掌握(一套打通任督二脉)_第1张图片

2:依赖管理

  • 依赖传递

    • 依赖具有传递性
      • 直接依赖
      • 间接依赖
    • 依赖注入冲突问题
      • 当同一个坐标配置了多个版本的依赖,后面会覆盖前面的
        Maven入门到掌握(一套打通任督二脉)_第2张图片
  • 可选依赖(不透明性):隐藏当前工程所依赖的资源,隐藏后对应的资源不具有传递性

        <dependency>
            <groupId>com.ysjgroupId>
            <artifactId>maven_03_pojoartifactId>
            <version>1.0-SNAPSHOTversion>
    
            <optional>trueoptional>
    
  • 排除依赖(不需要):隐藏当前以来对应的资源关系,无需指定版本

    
          <dependency>
              <groupId>com.ysj groupId>
              <artifactId>maven_04_daoartifactId>
              <version>1.0-SNAPSHOTversion>
              <exclusions>
    
                  <exclusion>
                      <groupId>mysqlgroupId>
                      <artifactId>mysql:mysql-connector-javaartifactId>
                  exclusion>
              exclusions>
          dependency>
    

3:继承与聚合

3.1:聚合

  • 定义:将多个模块组织成一个整体,同时进行项目构建

  • 目的:为了让统一管理各个模块,当其中有模块更新时,让多个模块同时更新

  • 聚合工程

    • 新建一个模块,该模块只需一个pom.xml文件

      • 其打包方式为pom

        <groupId>com.ysjgroupId>
        <artifactId>maven_01_parentartifactId>
        <version>1.0-SNAPSHOTversion>
        <packaging>pompackaging>
        
    • pom.xml中进行模块管理

      <modules>
          <module>../maven_03_pojomodule>
          <module>../maven_04_daomodule>
          <module>../../../../springmvc_08_ssmmodule>
      modules>
      
    • 无需管上边儿module的书写顺序,实际聚合中,程序会根据依赖关系逐步构建

3.2:继承

  • 类似java

  • 聚合与继承一般在一个模块中

  • 作用

    • 简化配置
    • 减少版本冲突
  • 
        <parent>
            <groupId>com.ysjgroupId>
            <version>1.0-SNAPSHOTversion>
            <artifactId>maven_01_parentartifactId>
            
            <relativePath>../maven_01_parent/pom.xmlrelativePath>
        parent>
    
  • 在父模块中定义依赖管理

    • 
          <dependencyManagement>
              <dependencies>
                  <dependency>
                      <groupId>junitgroupId>
                      <artifactId>junitartifactId>
                      <version>4.12version>
                      <scope>testscope>
                  dependency>
              dependencies>
          dependencyManagement>
      
    • 此时子模块中可自行选择是否使用该依赖,若使用,则不用指定版本号,默认使用父模块的版本

3.3:继承和聚合的区别

Maven入门到掌握(一套打通任督二脉)_第3张图片

4:属性

4.1:属性

  • 定义属性

<properties>
<spring.version>5.2.10.RELEASEspring.version>
properties>
  • 使用属性(使用${})

    <dependencies>
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-jdbcartifactId>
            <version>${spring.version}version>
        dependency>
    dependencies>
    

4.2:配置文件加载属性

        <build>
            <resources>
                <resource>

                    <directory>${project.basedir}/src/main/resourcesdirectory>
                    <filtering>truefiltering>
                resource>
            resources>
        build>

  • 打包时要配置maven打war包,此时要忽略web.xml的检查

    • 在web项目下新建个空web.xml文件

    • 在web项目下的pom.xml中定义插件

      plugin>
      
        <plugin>
            <groupId>org.apache.maven.pluginsgroupId>
            <artifactId>maven-plugin-pluginartifactId>
            <version>3.6.4version>
                <configuration>
                    <failOnMissingWebXml>falsefailOnMissingWebXml>
                configuration>
        plugin>
      

4.3:版本管理

Maven入门到掌握(一套打通任督二脉)_第4张图片

6:多环境开发

6.1:配置多环境

  • 通过id进行区分

        <profiles>

            <profile>
                <id>env_depid>
                <properties>
                    <jdbc.url>jdbc:mysql://127.0.0.1:3306/mybatisjdbc.url>
                properties>
                
                <activation>
                    <activeByDefault>trueactiveByDefault>
                activation>
            profile>

            <profile>
                <id>env_proid>
                <properties>
                    <jdbc.url>jdbc:mysql://127.1.1.1:3306/mybatisjdbc.url>
                properties>
            profile>
            
            <profile>
                <id>env_testid>
                <properties>
                    <jdbc.url>jdbc:mysql://127.2.2.2:3306/mybatisjdbc.url>
                properties>
            profile>


        profiles>

6.2:设置默认开发环境

  • 打包时用命令

    mvn -install -P 环境名
    

7:跳过测试

  • 当上线前有些功能还未开发完全,跳过测试可直接打包

  • 方法

    • 点这个闪电:但是这个的弊端是所有模块均跳过测试

    在这里插入图片描述

    • 配置插件跳过

    • 
         <plugins>
             <plugin>
                 <artifactId>maven-surefire-pluginartifactId>
                 <version>2.22.2version>
                 <configuration>
                  
                     <skipTests>falseskipTests>
                     
                 <excludes>
                     <exclude>**/BookServiceTest.javaexclude>
                 excludes>
                 configuration>
      
             plugin>
         plugins>
      
    • 指令跳过

      mvn package -D skipTest
      
           
               **/BookServiceTest.java
           
           

       
   
```
  • 指令跳过

    mvn package -D skipTest
    

    关于私服的学习,后续会更新。

创作不易,六个三连+关注吧

你可能感兴趣的:(Javaee学习,maven,java,spring)