zoukankan      html  css  js  c++  java
  • 【maven】 初识

    最近会总结一下maven的用法,做一个归类。日常开发中经常使用到maven,但是缺从来没有花时间去总结,这是一个非常不好的行为。希望从今天开始能够每天学习总结,哪怕只是一个小知识,也能有所积累。

    发音

    maven(英[ˈmeɪvn]) ,请看准发音!

    下载
    maven仓库

    环境要求

    maven是一个基于java的工具,因此必须要有jdk环境哦。maven的安装这里就不说啦,网上可以轻松搜罗到很多的教程

    Maven版本 JDK要求
    Maven 3.3 JDK 1.7 或以上
    Maven 3.2 JDK 1.6 或以上
    Maven 3.0/3.1 JDK 1.5 或以上

    Maven 项目结构

    bin目录:存放的是核心文件
    conf目录:目录下有一个极其重要的文件 settings.xml(maven的核心配置文件/全局配置文件),这个后面再说

    什么是Maven

    maven是apache下的一个java开发的项目管理工具。Maven基于项目对象模型POM(Project Object Model)的概念,可以通过一小段描述信息管理项目构建,报告和文档的软件项目管理工具。
    因为是基于POM,因此Maven中的每一个项目都可以当成一个对象,并且这些对象之间是有关系的:依赖,继承,聚合

    名词解释

    • POM (Project Object Model): 项目对象模型, 具体体现形式是一个xml文件
    • 仓库: 项目中依赖库或项目本身库所在的地方就叫做仓库
    • 构件: 任何一个依赖、插件或者项目构建的输出都叫做构件,通俗的说(JAR包就是一个构件,但不仅限于JAR包)

    仓库

    Maven仓库是基于文件系统存储的,集中化管理构件的一个服务。仓库可以分为三类: 本地仓库、中央仓库、远程仓库

    本地仓库

    存在于计算机本地的仓库

    Setting.xml配置

    其中 D:softwarejava-software epository 就是我本地仓库的地址,后续的jar包都会被管理到这里

    <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>D:softwarejava-software
    epository</localRepository>
    </settings>
    

    中央仓库

    Maven社区提供的仓库,内部包含了大量的常用库。一般JAVA项目需要用到的库都能在这上面下载到 中央仓库
    这个中央仓库本来是不需要在setting中设置的,但是因为Maven的中央仓库在国外,下载速度比较慢。因此我们通常会配置阿里国内镜像,如下

    Settings.xml

    <mirrors>
        <mirror>
          <!-- 镜像id可以修改 -->
          <id>alimaven</id>
          <!-- 镜像名称,可以修改 -->
          <name>aliyun maven</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
          <!-- 阿里的仓库名,不能随意修改 -->
          <mirrorOf>central</mirrorOf>        
        </mirror>
    </mirrors>
    

    POM.xml

    当然也可以在POM文件中配置

    <repositories>  
            <repository>  
                <id>alimaven</id>  
                <name>aliyun maven</name>  
                <url>http://maven.aliyun.com/nexus/content/groups/public/</url>  
                <releases>  
                    <enabled>true</enabled>  
                </releases>  
                <snapshots>  
                    <enabled>false</enabled>  
                </snapshots>  
            </repository>  
    </repositories>
    

    远程仓库

    远程仓库也可以叫成私服仓库, 一般由公司内部程序员自己定制的一个仓库,用于共享私有构件的。
    比如A项目已经开发完毕,打成JAR包放到私服上。如果B项目依赖A项目,那么就可以从私服仓库中下载该JAR包

    Settings.xml

    <profile>
    
        <repositories>
            <repository>
                <id>snapshots</id>
                <url>http://xxx/nexus/content/repositories/snapshots/</url>
                <releases>
                    <enabled>false</enabled>
                    <updatePolicy>always</updatePolicy>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository>
            <repository>
                <id>releases</id>
                <url>http://xxx/nexus/content/repositories/releases/</url>
                <releases>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository>
        </repositories>
    </profile>
    
  • 相关阅读:
    【LeetCode-字符串】重构字符串
    【LeetCode-二叉树】填充每个节点的下一个右侧节点指针
    【LeetCode-回溯】分割回文串
    【LeetCode-字符串】最后一个单词的长度
    【LeetCode-数组】生命游戏
    【LeetCode-链表】奇偶链表
    【LeetCode-字符串】反转字符串
    【LeetCode-数学】打乱数组
    Java中实现多线程的3种方法介绍和比较
    oracle 临时表空间、数据表空间、创建用户名与密码、赋予用户权限
  • 原文地址:https://www.cnblogs.com/amberbar/p/15088299.html
Copyright © 2011-2022 走看看