Maven仓库讲解

Maven 是Apache下的一个纯Java开发的开源项目,也是当下非常流行的一个项目管理构建工具,同类软件还包括有Gradle,Ant…

Maven基于项目对象模型(POM)的概念,为Java项目提供了非常强大的项目生命周期管理和依赖管理。在使用Maven创建项目的同时,Maven也默认提供了标准的项目目录结构,秉着约定大于配置的原则为项目开发制定了统一的规则。

Maven仓库:

在maven中有存在着几个仓库的概念:本地仓库,远程仓库,私服仓库,中央仓库,

在我们使用的maven依赖第三方jar时,maven 会先去检查我们的本地仓库有没有这个Jar包,如果有的话直接引用,如果没有的话就需要到远程中央仓库去下载了,如果配置了私服仓库的话,会去私服上找,找到的话会会直接下载到本地仓库,方便我们下次直接使用。没有的话由私服仓库到互联网远程仓库上下载

  • 本地仓库:保存从远程仓库下载下来的jar包,避免下次重复下载(缓存的概念)
  • 远程仓库:存储第三方开源项目的maven仓库,可以是公网上的,也可以是局域网内的。
  • 私服:在公司局域网环境下搭建的Maven远程仓库,工程师可以连接到私服将自己的项目打包发布到上面,也可以直接从私服上下载自己想要依赖的jar包,如果私服上没有的话,那么私服就会从中央仓库去下载
  • 中央仓库:maven核心团队自己维护的远程仓库地址,存储了全世界大部分的开源项目,服务于整个互联网

依赖管理

要清楚依赖管理就要先知道有关依赖的定义,依赖就是一个项目需要用到某些第三方的jar包才能正常运行,那就可以说这个项目依赖了那些第三方的jar包,在日常的Java项目开发中我们会用到很多很多的第三方jar包,Spring,Mybatis等等 它们之间的关系就可以用依赖来形容。
Maven提供的依赖管理功能就是为了对这些第三方的Jar包进行一个规范化的管理。

在未使用maven时我们用到第三方jar只能从网络上手动下载,拷贝,这样做的问题有很多,一个是jar包不好找,另一个就是项目日积月累的jar包越来越多,jar包之间的版本问题就很让人头痛,要从一大堆jar包里找到几个冲突的确实不是那么容易的事

而在使用了maven之后,我们就显得轻松许多,需要哪一个jar包,只要将需要的jar包信息填写到maven工程的POM文件中,maven就能自动的帮你去下载。
通过pom文件还能对jar包的版本进行统一的管理,版本冲突的问题似乎也没那么让人难受了。

<?xml version="1.0" encoding="UTF-8"?>
<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.jlong</groupId>
    <artifactId>mavendemo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId></groupId>
            <artifactId></artifactId>
            <version></version>
        </dependency>
    </dependencies>
</project>

如果要添加jar包依赖,直接在dependencies节点写添加dependency,每一个dependency都代表着一个项目的座标信息,
通过它就可以准确的找到你要依赖的那个jar.

  • groupId:项目名称
  • artifactId:依赖的模块名
  • version:想要依赖的jar包版本

项目构建

所谓的项目生命周期管理也就是项目构建,指的是一个项目从编写源代码到编译、测试、运行、打包、部署、运行的过程。其中每一个阶段都可以使用一个命令完成。

  • 1、mvn compile 编译,将Java 源程序编译成 class 字节码文件。
  • 2、mvn test 测试,并生成测试报告
  • 3、mvn clean 将以前编译得到的旧的 class 字节码文件删除
  • 4、mvn pakage 打包,动态 web工程打war包,Java工程打 jar 包。
  • 5、mvn install 将项目生成 jar 包放在仓库中,以便别的模块调用

Maven其他常用命令

  1. 跳过测试:-Dmaven.test.skip(=true)
  2. 指定端口:-Dmaven.tomcat.port=8080
  3. 忽略测试失败:-Dmaven.test.failure.ignore=true

当然,如果你的其它关联项目有过更新的话,一定要在项目根目录下运行mvn clean install来执行更新,再运行mvn
tomcat:run使改动生效.

maven工程目录规定
maven工程目录规定

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章