maven学习整理-进阶知识
在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学习整理-进阶知识的更多相关文章
- maven学习整理-基础知识
1.maven认识 maven是一种自动化的构建工具,它主要解决的问题有: ①项目中的划分规则:原先我们用package或文件夹的形式来划分不同模块,导致在一个项目中存在大量的文件夹和包代码显得庞大: ...
- Maven学习整理
1. window系统中安装Maven 2. 解决使用代理联网时无法下载jar包 3. 配置本地仓库 4. 处理本地仓库和中央仓库都没有依赖的jar包的情况
- Spring实战3:装配bean的进阶知识
主要内容: Environments and profiles Conditional bean declaration 处理自动装配的歧义 bean的作用域 The Spring Expressio ...
- 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 ...
- Wix学习整理(5)——安装时填写注册表
原文:Wix学习整理(5)--安装时填写注册表 一 Microsoft操作系统的注册表 什么是注册表? 注册表是Mircrosoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信 ...
- Wix学习整理(6)——安装快捷方式
原文:Wix学习整理(6)--安装快捷方式 一 为HelloWorld案例添加安装快捷方式 通常我们安装一个应用软件的时候,都喜欢在桌面或开始菜单中添加快捷方式以便我们快速访问.现在我们就在上篇添加注 ...
- (1)写给Web初学者的教案-----学习Web的知识架构
1:学习Web的知识架构 前文中我们简单的介绍了一些关于Web的基本知识,这里任老师再次强调一下凡是用浏览器打开的网站我们就称之为Web应用程序(B/S结构).除此之外其它需要下载安装的软件或是手机 ...
- (转)Maven学习总结(二)——Maven项目构建过程练习
孤傲苍狼 只为成功找方法,不为失败找借口! Maven学习总结(二)——Maven项目构建过程练习 上一篇只是简单介绍了一下maven入门的一些相关知识,这一篇主要是体验一下Maven高度自动化构建项 ...
- 【Maven学习】Nexus OSS私服仓库的备份与迁移
背景 在上一篇博客 [Maven学习]Nexus OSS私服仓库的安装和配置 中,我们已经在机房搭建好了新的Nexus OSS私服仓库.下面是两个版本的Nexus OSS私服仓库的对比图. 老的Nex ...
随机推荐
- 基于Vue2、WebSocket的仿腾讯QQ
概述 本项目基于Vue2进行高仿手机QQ的webapp,UI上使用的是museUI,使用springMVC搭建的后台.聊天方面,使用WebSocket实现浏览器与服务器全双工通信,允许服务器主动发送信 ...
- python爬虫https://www.imdb.com/chart/top的电影
目标:爬取https://www.imdb.com/chart/top网页上面的电影top20 直接上main.py代码: #!/usr/bin/python35 # -*- coding:utf-8 ...
- 设置当内容超出div(文字长度超出div宽度)出现滚动条
overflow 一共有5个属性. 1.overflow:auto:内容会被修剪,超出设置的宽高后会出现滚动条 2.overflow:scroll;内容会被修剪,不管内容是否超出,都会出现滚动条的位置 ...
- 基于MFC的Media Player播放器的制作(4---功能实现代码)
| 版权声明:本文为博主原创文章,未经博主允许不得转载. PandaPlayerDlg.h // PandaPlayerDlg.h : header file // //{{AFX_INCLUDE ...
- Maven的pom.xml文件结构之基本配置parent和继承结构
1.Maven项目的继承 Maven项目之间不仅存在多模块的聚合关系,而且Maven项目之间还可以存在相互继承的关系. Maven项目之间的继承关系通过<parent>表示,在子Maven ...
- 学习vim 从常用按键开始
ctrl+e 将屏幕下滚一行 ctrl+u 将屏幕上滚半页 ctrl+d 将屏幕下滚半页 ctrl+b 将屏幕上滚一页 ctrl+f 将屏幕下滚一页 撤销 u 前进 ctrl r 移动 下一个单词 ...
- Spring学习笔记(7)——Bean的基本配置
先从IOC说起,这个概念其实是从我们平常new一个对象的对立面来说的,我们平常使用对象的时候,一般都是直接使用关键字类new一个对象,那这样有什么坏处呢?其实很显然的,使用new那么就 ...
- OI中的快速傅里叶变换(FFT)
快速傅里叶变换(FFT) ---- LLpp ...
- java获取网页源代码并写入本地文件中
import java.io.*; import java.net.*; public class URLDemo { public static void main(String args[]){ ...
- Caused by: java.util.MissingResourceException: Can't find bundle for base name javax.servlet.LocalStrings, locale zh_CN
这个是很早以前的一个bug了,最近开始用idea发现追源码相当方便,于是结合网上的解决方案以及自己的判断追踪一下原因,当然没有深究,只是根据提示一直追而已:先说一下解决方案: <dependen ...