Maven的课堂笔记2

maven的核心概念

5.1  项目对象模型

说明:

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

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

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

5.2  插件的位置

maven解压后的位置E:\maven\bin有一个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命令

猜你喜欢

转载自www.cnblogs.com/JBLi/p/10562034.html