Maven 初识

先提两个问题:Maven是什么?有什么用?

才接触Maven的时候也是一头雾水,网上搜索了一些资料后感觉Maven和iOS开发中的cocoapods很像,cocoapods自动下载我们需要的开源类不需要手下载和管理。而Maven则是管理下载jar包

先提问一个简单的问题

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

在使用Maven前是这样做的,将B项目打包为jar,并在A项目的Library下导入B的jar文件。

这样做有着很明显的缺点:
1.如果在开发过程中,发现B中的bug,则必须重新将B打包并对A项目进行重编译操作
2.在协同开发A项目时,为了保证其能够正常运行,要么选择将B打包入A中,要么选择将B一样发布出去并告知开发者使用方法。显然这两个方法都不太好,前者可能造成资源浪费(比如开发者可能正在开发依赖B的其它项目,B已经存储到本地了),而后者则会为项目正常运行带来风险(一旦把工作交给人工注定会带来一定的失败率)。
因此,这样手动的控制项目间依赖关系显然是一种‘拙劣’的方法。

Maven介绍

所有的Maven项目包含着一个名为pom.xml的文件,在文件中记录着自己的等字段,这些字段在创建Maven项目时填写,Maven会依据它们来定位到该项目。

在pom中的另一个关键标签是,该标签下可以包含若干个标签,而下则是上面介绍的等依赖字段,它们确定着一个唯一的项目版本。

一个典型的pom.xml


    4.0.0

    com.example
    springboot-mybatis-dome
    0.0.1-SNAPSHOT
    jar

    springboot-mybatis-dome
    Demo project for Spring Boot

    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.6.RELEASE
         
    

    
        UTF-8
        UTF-8
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-jdbc
        
        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            1.3.2
        

        
            mysql
            mysql-connector-java
            runtime
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            com.alibaba
            druid-spring-boot-starter
            1.1.1
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
            
                org.mybatis.generator
                mybatis-generator-maven-plugin
                1.3.2
            
        
    



Maven库

以A、B项目为例,在A项目的pom文件中写入关联B项目,Maven会在工作区中找到B项目,并创建依赖。此时A项目可以直接访问到B项目中的类资源,而且对A调试时依然会击中B项目中设置的断点。

除去工作区的依赖关联外,Maven也可以关联一个远端镜像中的项目,在默认情况下,如果工作区中没有对应的项目记录,Maven会连接到中心仓库查找,如果找到,它会把项目下载到本地库中,并自动设置关联。这是一个十分便利的特性,在我们需要额外jar包支持时,不再需要进行手动的下载和引入,我们仅需要将需要项目对应的依赖字段粘贴到pom的合适位置,剩下的交给Maven完成即可。

我们如何知道所需项目的groupId等字段呢?

查询依赖字段首选的方案,是使用Maven搜索服务进行搜索。
推荐一个地址:mvnrepository.com

比如搜索MySql JDBC


image.png

点击进入查看详细的版本信息


image.png

复制Maven框中的内容,把它们写到pom的下即可。

什么是Maven?

Maven 是专门用于构建和管理Java相关项目的工具。

Maven有什么用?

项目构建,项目管理,管理jar包下载

你可能感兴趣的:(Maven 初识)