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命令

  • 相关阅读:
    动态生成 Excel 文件供浏览器下载的注意事项
    JavaEE 中无用技术之 JNDI
    CSDN 泄露用户密码给我们什么启示
    刚发布新的 web 单点登录系统,欢迎下载试用,欢迎提建议
    jQuery jqgrid 对含特殊字符 json 数据的 Java 处理方法
    一个 SQL 同时验证帐号是否存在、密码是否正确
    PostgreSQL 数据库在 Windows Server 2008 上安装注意事项
    快速点评 Spring Struts Hibernate
    Apache NIO 框架 Mina 使用中出现 too many open files 问题的解决办法
    解决 jQuery 版本升级过程中出现 toLowerCase 错误 更改 doctype
  • 原文地址:https://www.cnblogs.com/JBLi/p/10562034.html
Copyright © 2011-2022 走看看