zoukankan      html  css  js  c++  java
  • Maven的课堂笔记2

    maven的核心概念

    5.1 项目对象模型

    说明:

    maven根据pom.xml文件,把它转化成项目对象模型(POM),这个时候要解析依赖关系,然后去相对应的maven库中查找到依赖的jar包。

    cleancompiletestpackage等阶段都有相应的Plug-in来做这些事情。

    而这些plug-in会产生一些中间产物。

    5.2 插件的位置

    maven解压后的位置E:mavenin有一个bin文件夹,里面有

    一个文件m2.conf文件中指明了仓库的存储位置。

    其中settings.xml文件中

     

    这个说明了仓库中的位置。

    这里的插件就是执行maven的各种命令所需要的插件

    5.3  maven坐标

    maven坐标的主要组成

    groupId:定义当前maven项目属于哪个项目,一般是公司域名

    artifactId:定义实际项目中的某一个模块,实际的项目名称

    version:定义当前项目的当前版本

    packaging:定义当前项目的打包方式

    根据这些坐标,在maven库中可以找到唯一的jar

    依赖管理

    6.1 继承管理

    6.2 创建CCTV2项目

    6.3 修改pom文件

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

      <modelVersion>4.0.0</modelVersion>

      <groupId>com.bw</groupId>

      <artifactId>CCTV2</artifactId>

      <version>0.0.1-SNAPSHOT</version>

    </project>

     

    6.4 创建CCTV2java

    CCTV2中访问CCTV1中的方法,在传统的java项目中,是没有办法去访问到另外一个项目中的类和方法.

     

    6.5 使用maven命令编译CCTV2项目

    mvn compile

    使用maven的特性去访问

    6.6 修改CCTV2中的pom文件

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.bw</groupId>
      <artifactId>CCTV2</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      
      <dependencies>
          <dependency>
                <groupId>com.bw</groupId>
              <artifactId>CCTV1</artifactId>
              <version>0.0.1-SNAPSHOT</version>
          </dependency>
      </dependencies>
    </project>

    6.7 执行mvn compile命令 

    只要这个命令执行完没有报错,就说明,CCTV2访问到了CCTV1里的方法. 

    6.8 查看依赖关系

     

    6.9 再添加junit支持修改pom文件

     修改CCTV2pom文件,添加junit支持

    roject xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.bw</groupId>
      <artifactId>CCTV2</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      
      <dependencies>
          <dependency>
                <groupId>com.bw</groupId>
              <artifactId>CCTV1</artifactId>
              <version>0.0.1-SNAPSHOT</version>
          </dependency>
          <dependency>
                <groupId>junit</groupId>
              <artifactId>junit</artifactId>
              <version>4.0</version>
          </dependency>
      </dependencies>
    </project>

    6.10查看依赖关系

    依赖的传递

    7.1 依赖传递(第一种)

    7.1.1 创建项目CCTV3

    CCTV3,访问CCTV1中的方法.

    用上面的传统的依赖的方式去做,应该在pom文件中,引入一次cctv1,就可以使用CCTV1中的方法.

    7.2 引入CCTV2

    修改pom文件

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.bw</groupId>
      <artifactId>CCTV3</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      
      <dependencies>
          <dependency>
            <groupId>com.bw</groupId>
          <artifactId>CCTV2</artifactId>
          <version>0.0.1-SNAPSHOT</version>
          </dependency>
      </dependencies>

    </project>

    7.3 编译CCTV3项目

    mvn compile

    7.3.1 报错原因

    CCTV3,引入CCTV2,想访问CCTV1中的方法,

    重点:我们是从资源库中找到的CCTV2

    解决方式,去把CCTV2重新安装到资源库中.

     

    7.4 再次重新编译CCTV3

     解决错误: 是因为在资源库中找到了CCTV2,所以编译通过

     

    7.5 查看一下依赖关系

    7.6 第二种依赖关系

    7.7 创建一个CCTV4项目

    7.8 修改pom.xml文件

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.bw</groupId>
      <artifactId>CCTV4</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <packaging>pom</packaging>
      <dependencies>
          <dependency>
            <groupId>com.bw</groupId>
          <artifactId>CCTV1</artifactId>
          <version>0.0.1-SNAPSHOT</version>
          </dependency>
      </dependencies>
    </project>

    7.9 编译安装CCTV4

    执行mvn install命令

    7.10 创建CCTV5项目

    CCTV5这个项目中,调用CCTV1这个项目的中的方法

     

    7.11 修改pom文件

    CCTV5依赖CCTV4;

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.bw</groupId>
      <artifactId>CCTV5</artifactId>
      <version>0.0.1-SNAPSHOT</version>
      <parent>
            <groupId>com.bw</groupId>
          <artifactId>CCTV4</artifactId>
          <version>0.0.1-SNAPSHOT</version>
      </parent>
    </project>

    7.12编译CCTV5

    执行  mvn  compile命令

  • 相关阅读:
    自动支持图片webp格式压缩,图片服务器升级webserver
    长江商学院介绍及名人校友名单
    恒大许家印靠斗着地主,当上首富
    用GitLab搭建自己的私有GitHub
    vim快速定位到某一行的几种方法和显示行号,定位匹配字符串,显示当前行信息的命令
    mysql数据库表上百万记录优化思路杂谈
    Java打印输出数组的三种方式:传统的for循环方式,for each循环,利用Arrays类中的toString方法
    个人快速成长之系统方法,最小化成长系统
    程序员应该了解的常见软件开发定律
    用python修改文件内容修改txt内容的3种方法
  • 原文地址:https://www.cnblogs.com/JBLi/p/10562034.html
Copyright © 2011-2022 走看看