> 文章列表 > java Maven 的理解

java Maven 的理解

java Maven 的理解

一、maven项目产生的原因

当开发两个Java项目,姑且把它们称为A、B,其中A项目中的一些功能依赖于B项目中的某些类,那么如何维系这种依赖关系的呢?

答:可以将B项目打成jar包,然后在A项目的Library下导入B的jar文件,这样A项目就可以调用B项目中的某些类。

但会出现如下问题:

(1)在开发过程中,发现B中的bug,则必须将B项目修改好,并重新将B打包并对A项目进行重编译操作(这样做想想就麻烦

(2)之后在完成项目A后,为了保持A的正常使用。

第一种,选择将B打包入A中(造成资源的浪费

第二种,将B也发布出去,等别人需要用A时,告诉开发者,想要用A就必须要导入B 的 jar包,这样就要找B的jar包,如果需要导入十几个jar包,那么手动打jar包、找jar包就非常繁琐

=》而maven就是为了简化这个过程而出现的

二、maven是什么

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。
 

跑过maven项目的人都知道,我们是靠pom.xml来获取Jar包的。

那么为什么我能通过groupId、artifactId、version三个属性就能定位一个jar包 ?

 通过pom.xml的这三个属性,就能生成readAppJava-0.0.1-SNAPSHOT.jar,这样如果上传到maven中央仓库别人就能使用这个项目的jar包。这也就是为什么我们能在maven仓库获得别人的jar包。

三、安装maven

具体过程我就省略,直接看看maven的具体目录

四、maven仓库

一共有三种仓库分别是:本地仓库、第三方仓库、中央仓库

1. 本地仓库:在settings.xml文件,可以配置路径

<localRepository>D:/Environment/apache-maven-3.6.3/maven_localRepository</localRepository>

 2. 第三方仓库

一般是由公司自己设立的,只为本公司内部共享使用。它既可以作为公司内部构件协作和存档,也可作为公用类库镜像缓存,减少在外部访问和下载的频率

3. 中央仓库

Maven内置了远程公用仓库:http://repo1.maven.org/maven2

这个公共仓库是由Maven自己维护,里面有大量的常用类库,并包含了世界上大部分流行的开源项目构件。目前是以java为主

工程依赖的jar包如果本地仓库没有,默认从中央仓库下载

总结:获取jar包的过程

五、使用maven仓库

暂时没想好怎么写