前言
项目中很多工具用起来很方便却很少深究过它们的具体内容,今天和大家一起来复习整理一下再java工程化中重要的一节:Maven;
概述
项目中Maven有仓库管理、依赖管理等功能为项目的构建提供了完善的解决方案.那么Maven是如何做到这些的呢,下面让我们来了解一下仓库的概念.
仓库管理
提起Maven想到最多的就是对jar包的管理,那么我们在项目中配置了pom.xml文件后,又该从哪里获取到这些jar包呢,地方就是所说的仓库。在Maven中仓库分为:本地仓库、第三方仓库(私服)、中央仓库.
本地仓库
Maven会将工程中依赖的jar包从远程下载到本机一个目录下管理,每个电脑默认的仓库是在 $user.home/.m2/repository下,也可以通过Maven的Setting文件来配置本地仓库的地址.
第三方仓库
第三方仓库,也称为私服一般是由公司自己设立的,只为本公司内部共享使用。使用私服为了减少对中央仓库的访问,所以私服可以使用局域网,但中央仓库必须使用外网.
中央仓库
Maven内置了远程公用仓库:http://repo1.maven.org/maven2 这个公共仓库是由Maven自己维护,里面有大量的常用类库,并包含了世界上大部分流行的开源项目构件。目前是以java为主,工程依赖的jar包会先从本地仓库与私服中查找,如果没有就会从中央仓库下载.
依赖管理
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.0</version>
<scope>test</scope>
</dependency>
在使用pom.xml配置jar包时,groupId artifactId version scope 四个属性是一定要了解的 .
Scope
其中scope可以表示依赖范围有:编译时,运行时,测试时;
compile: 默认值,如果选择此值,表示编译、测试和运行都使用当前jar.
test: 表示只在测试时当前jar生效,在别的范围内就不能使用该jar包。
runtime: 表示测试和运行时使用当前jar,编译时不用该jar包。
provided: 表示编译和测试时使用当前jar,运行时不在使用该jar了。
在平时的使用中要是全部都以默认值为Scope的配置程序运行是没有问题,但是对于一个对程序负责的架构师来说注意jar包的依赖范围是很必要的.
小结
想要了解Java工程化的内容还有很多的内容需要重新学习整理,我将在之后的篇幅中逐步为大家展开,荣幸与您分享~
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/144255.html