• 5分钟快速上手maven


    5分钟快速上手maven

    一个语言的生态包含了库和框架。这两个东西存在的意义都是为了给程序猿提供已经造好的轮子,以方便程序猿的开发。

    库是“被动“的,库被提供之后,程序猿需要自己写一些逻辑来调用库。
    框架是“主动”的,使用框架的时候,核心流程已经提供好了,程序猿只需要写一些自动的简单逻辑即可。

    库和框架到哪里找?

    • 标准库是jdk自带的,直接就可以使用。
    • 第三方库有多中途径:
      1. 库/框架的官方网站
      2. github(不一定都开源,需要自己去找开源的库/框架)
      3. 中央仓库。

    其中中央仓库是一些大佬将第三方库进行归档,我们只需要在中央仓库中搜索,然后就可以统一进行下载/安装。

    中央仓库maven的作用

    1. 组织好项目的目录结构
    2. 构建打包程序(自动编译,打jar包)
    3. 管理项目依赖

    使用idea创建一个maven项目,简单介绍项目的结构

    ![[Pasted image 20220819182502.png]]

    ![[Pasted image 20220819182728.png]]

    通过GroupId + ArtifactId + Version可以共同确定一个jar包

    • 项目目录结构介绍
      ![[Pasted image 20220819184117.png]]

    pom.xml是一个maven项目最核心的配置文件。

    xml文件就是一种多标签文件。每一个标签都有开始标签和结束标签。每一个标签可以看成一个键值对,key就是标签名,value是标签中的内容。

    .xml文件中有哪些标签,标签的语义的定义,标签之间如何嵌套都是可以自定义的。(对于一种特殊的xml文件html文件,其中标签的定义和嵌套规则都是约定好的)

    功能一:项目管理依赖

    1. 首先去maven中央仓库中找到自己想要下载的库Maven Repository: Search/Browse/Explore (mvnrepository.com)
      这里假设下载mysql connector
    • 搜索mysql connector
      ![[Pasted image 20220819191805.png]]

    • 随便选一个版本
      ![[Pasted image 20220819191822.png]]

    • 如果下载的库没有其他依赖的话,可以直接在Files中点击jar下载文件。但是如果想要通过maven下来一系列有依赖的文件的话,就可以将下面这段代码复制到maven项目的pom.xml的dependencies标签中。
      ![[Pasted image 20220819191917.png]]

    • 名字飘红说明文件没有下载完成,需要等待一段时间。maven会将下载的jar包自动放到一个“本地仓库”的目录中
      ![[Pasted image 20220819192159.png]]

    • 注意:下载的过程是比较慢的,特别是第一次使用maven下载的时候,maven会自动下载很多maven本身的依赖。

    • 如果等待了几个小时还没有下载好,可以有两种选择:

      1. 重新加载一遍在这里插入图片描述

      2. 更换maven源。在下图位置![[Pasted image 20220819193833.png]]
        新建一个settings.xml文件。然后将下面代码放在该文件中,最后reoload maven即可。

    <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                          http://maven.apache.org/xsd/settings-1.0.0.xsd">
      <localRepository/>
      <interactiveMode/>
      <usePluginRegistry/>
      <offline/>
      <pluginGroups/>
      <servers/>
      <mirrors>
        <mirror>
         <id>aliyunmavenid>
         <mirrorOf>centralmirrorOf>
         <name>阿里云公共仓库name>
         <url>https://maven.aliyun.com/repository/centralurl>
        mirror>
        <mirror>
          <id>repo1id>
          <mirrorOf>centralmirrorOf>
          <name>central reponame>
          <url>http://repo1.maven.org/maven2/url>
        mirror>
        <mirror>
         <id>aliyunmavenid>
         <mirrorOf>apache snapshotsmirrorOf>
         <name>阿里云阿帕奇仓库name>
         <url>https://maven.aliyun.com/repository/apache-snapshotsurl>
        mirror>
      mirrors>
      <proxies/>
      <activeProfiles/>
      <profiles>
        <profile>  
            <repositories>
               <repository>
                    <id>aliyunmavenid>
                    <name>aliyunmavenname>
                    <url>https://maven.aliyun.com/repository/publicurl>
                    <layout>defaultlayout>
                    <releases>
                            <enabled>trueenabled>
                    releases>
                    <snapshots>
                            <enabled>trueenabled>
                    snapshots>
                repository>
                <repository>
                    <id>MavenCentralid>
                    <url>http://repo1.maven.org/maven2/url>
                repository>
                <repository>
                    <id>aliyunmavenApacheid>
                    <url>https://maven.aliyun.com/repository/apache-snapshotsurl>
                repository>
            repositories>             
         profile>
      profiles>
    settings>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59

    功能二:打包构建

    • 打包操作只有一步,只需要运行package即可
      ![[Pasted image 20220819194702.png]]

    • 打包好jar文件之后,就会自动生成一个target文件夹,jar包就会存在这个文件夹中。之后就可以将这个jar包发布给别人了。
      ![[Pasted image 20220819194838.png]]

  • 相关阅读:
    题解2023.5.23(欧拉筛)
    ISS点云内部形状特征描述子
    Compose 布局
    《Fundamantals of Software Architecture》 Q&A
    Redis的缓存问题(三)缓存穿透、缓存雪崩、缓存击穿
    pg 函数匹配规则
    RestTemplate 返回值设置MediaType时的问题
    [微前端实战]---023系统重构
    jQuery源码
    centos6.5 搭建FTP服务器
  • 原文地址:https://blog.csdn.net/zhybiancheng/article/details/126431207