在maven的阶知识主要学习的是maven在eclipse中的使用、依赖相关的问题、继承(父子工程)、统一版本管理、聚合等相关知识

1.maven在eclipse中的使用

由上篇基础知识学习到怎样下载安装maven,先在我们将下载好的配置到ecllipse中

选择Window->Preferences->Maven->Installations->add->①在本地工作空间的选择Workspace,其余选择External②选择解压maven的目录③可以给配置进来maven任意起名字④点击Finish完成配置

配置本地设置

这样完成在eclipse配置自己解压的maven

2.maven的依赖

2.1依赖的范围

依赖的范围可分为三种分别是test、provided、compile(默认值)

compile:
    对主程序是否有效:Y
    对测试程序是否有效:Y
    是否参与打包:Y

test:
    对主程序是否有效:N
    对测试程序是否有效:Y
    是否参与打包:N
    egg:junit.jar
provided:
     为web工程添加的
     对主程序是否有效:Y
     对测试程序是否有效:Y
    是否参与打包:N ---不参与部署
    egg:service-api.jar
    开发有 部署运行不用

2.2 依赖的传递性

依赖的传递性----dependency hierarchy依赖的传递性 首层是直接依赖,其余的是传递依赖

        可以传递的依赖不必在每个工程重复声明,只在最下面的工程依赖一次就行--------其余工程均可使用

非compile范围的依赖不能传递,test和provided只在本工程有效

2.3依赖排除

排除只在本工程有效,在下面工程排除依赖,上面使用的工程的依赖也会排除
    <exclusions>
        <exclusion>
            指定groupId和artifactid
        </exclusion>
    </exclusions>

2.4依赖的原则

依赖原则:解决模块工程之间的jar包冲突问题
      就近原则,如果有两个类型相同jar包,maven会自动选择最近的
      类型相同,路径相同 在dependency声明顺序,maven会选择最后声明的那个版本

2.5依赖管理

<!-- 配置依赖的管理 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>

3.统一版本管理

在properties中使用自定义的版本号、定义字符集,在dependency时自动替换

<properties>
<spring.version>4.1.1.RELEASE</spring.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
<scope>compile</scope>
</dependency>

4.父子工程

  新建父工程,选择Packaging时选择pom即可

新建子工程,和其他工程新建一致,只需要添加引用即可

<!-- 子工程中声明父工程 -->
<parent>
<groupId>com.test.maven</groupId>
<artifactId>Parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 以当前文件为基准的父工程pom.xml文件的相对路径 -->
<relativePath>../Parent/pom.xml</relativePath>
</parent>

父子工程注意事项

父工程---将test范围的工程抽取到父工程里
        1.父工程的打包方式是pom
        2.在子工程声明对父工程的引用 用parent标签和dependences同级
            relativepath以子工程的pom.xml路径为基准的父工程pom.xml的路径

3.子工程与父工程坐标重复删除
        4.在父工程统一版本依赖
             在父工程配统一依赖的管理dependencyManager --dependences -dependency
       5.子工程版本依赖删除

配置继承后,执行安装时要先安装父工程

5.聚合

聚合一键安装各个模块工程
    配置聚合----指定各个子工程的相对路径
<models>
<model></model>
</models>

<!-- 配置聚合 -->
<modules>
<!-- 指定各个子工程的相对路径 -->
<module>../maven1</module>
<module>../maven2</module>
</modules>

使用方式,在聚合工程上右键 install即可
子模块顺序可以乱序,maven自动排序

6.设置jdk

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>

 

maven学习整理-进阶知识的更多相关文章

  1. maven学习整理-基础知识

    1.maven认识 maven是一种自动化的构建工具,它主要解决的问题有: ①项目中的划分规则:原先我们用package或文件夹的形式来划分不同模块,导致在一个项目中存在大量的文件夹和包代码显得庞大: ...

  2. Maven学习整理

    1. window系统中安装Maven 2. 解决使用代理联网时无法下载jar包 3. 配置本地仓库 4. 处理本地仓库和中央仓库都没有依赖的jar包的情况

  3. Spring实战3:装配bean的进阶知识

    主要内容: Environments and profiles Conditional bean declaration 处理自动装配的歧义 bean的作用域 The Spring Expressio ...

  4. python 入门快速学习整理

    Python 入门学习 1  : 对象类型 1 1.1 列表 1 1.2 字典 2 1.3 元组 2 1.4 元组 2 1.4 文件 3 2  : 条件和循环语句 3 2.1  if else语句 3 ...

  5. Wix学习整理(5)——安装时填写注册表

    原文:Wix学习整理(5)--安装时填写注册表 一 Microsoft操作系统的注册表 什么是注册表? 注册表是Mircrosoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信 ...

  6. Wix学习整理(6)——安装快捷方式

    原文:Wix学习整理(6)--安装快捷方式 一 为HelloWorld案例添加安装快捷方式 通常我们安装一个应用软件的时候,都喜欢在桌面或开始菜单中添加快捷方式以便我们快速访问.现在我们就在上篇添加注 ...

  7. (1)写给Web初学者的教案-----学习Web的知识架构

    1:学习Web的知识架构 前文中我们简单的介绍了一些关于Web的基本知识,这里任老师再次强调一下凡是用浏览器打开的网站我们就称之为Web应用程序(B/S结构).除此之外其它需要下载安装的软件或是手机  ...

  8. (转)Maven学习总结(二)——Maven项目构建过程练习

    孤傲苍狼 只为成功找方法,不为失败找借口! Maven学习总结(二)——Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项 ...

  9. 【Maven学习】Nexus OSS私服仓库的备份与迁移

    背景 在上一篇博客 [Maven学习]Nexus OSS私服仓库的安装和配置 中,我们已经在机房搭建好了新的Nexus OSS私服仓库.下面是两个版本的Nexus OSS私服仓库的对比图. 老的Nex ...

随机推荐

  1. UML的类型

    分类 UML从考虑系统的不同角度出发,定义了用例图.类图.对象图.包图.状态图.活动图.序列图.协作图.构件图.部署图等10种图. 常见的UML图有用例图(Use Case Diagram).类图(C ...

  2. C++11中vector的几种遍历方法

    假设有这样的一个vector: vector<int> line={1,2,3,4,5,6,7,8,9}; 需要输出vector里的每个元素,主函数如下: void showvec(con ...

  3. js一些if语句判断条件为fasle的情况

    js一些if语句判断条件为fasle的情况 之前有写一个if判断条件产生的bug,当时写逻辑处理数据是在后台给接口之前,所以自己拟定了字段值为number类型的0或者1来进行判断,最后接口出来的时候是 ...

  4. USB仪器控制教程

    概观 本教程是为出发点使用NI-VISA与USB设备进行通信.它不打算作为一个起点,学习USB构架或USB通讯中使用的各种协议.阅读本教程后,您应该能够安装一个USB设备,并使用NI-VISA与该设备 ...

  5. oracle使用execute immediate方式完成函数动态传入表名并操作 返回新的主键id值

    CREATE OR REPLACE FUNCTION SEQ1 (v_bname in VARCHAR2) return NUMBER is v_bcount NUMBER; BEGIN execut ...

  6. kafka 简单安装以及java小demo

    文章目录 第1步,下载解压 kafka: 第2步,运行 kafka: 第3步,创建topic 第4步,生产者发送消息 第5步,消费者接收消息 使用 java 客户端 kafka 0.8.0版本demo ...

  7. Dubbo入门到精通学习笔记(二十):MyCat在MySQL主从复制的基础上实现读写分离、MyCat 集群部署(HAProxy + MyCat)、MyCat 高可用负载均衡集群Keepalived

    文章目录 MyCat在MySQL主从复制的基础上实现读写分离 一.环境 二.依赖课程 三.MyCat 介绍 ( MyCat 官网:http://mycat.org.cn/ ) 四.MyCat 的安装 ...

  8. js添加onclick中自定义方法

    最近写一个插件的时候遇到了这么一个问题. 插件的要求是,仅仅通过一行js代码,就需要生成相应的页面,不能改变源文件的代码 生成页面还好说,但是有一个问题就是,生成的页面中是有一个按钮的.按钮也是可以添 ...

  9. Java8环境设置

    假设你已经安装在 C:Program Filesjavajdk 目录: 在“我的电脑”右键单击并选择“属性”. 在“高级”选项卡下单击“环境变量”按钮. 现在,改变“Path”变量,因此,它也包含了路 ...

  10. leetcode python反转字符串中的单词

    # Leetcode 557 反转字符串中的单词III### 题目描述 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序. **示例1:** 输入: "L ...