程序员社区

Maven相关知识点整理

Maven相关知识点整理

  • Maven概念
  • Maven的作用
  • maven下载地址
  • maven环境变量配置
  • 仓库
  • 坐标
  • 本地仓库配置
    • 本地仓库具体配置步骤:
  • 远程仓库配置
    • 镜像仓库配置
      • 步骤;
  • 全局setting 和 用户setting 区别
  • maven工程目录结构
  • maven项目构建命令
  • 插件创建工程
  • 使用maven创建java项目的pom.xml配置演示---不使用骨架
  • 使用maven创建java项目的pom.xml配置演示---使用骨架
  • 使用maven创建web项目的pom.xml配置演示---不使用骨架
  • 使用tomcat插件启动web项目
  • 依赖配置---dependencies
    • 依赖传递
    • 依赖冲突问题
    • 可选依赖---对外隐藏
    • 排除依赖
  • 依赖范围
  • 依赖范围传递性
  • 生命周期与插件
    • clean生命周期
    • default构建生命周期
    • 插件---build
  • 可以使用alt + insert快速导入jar包和插件
  • Maven高级部分
    • 分模块开发与设计
      • 介绍
      • SSM项目多模块开发作为案例
    • 聚合
      • 多模块构建维护
      • 作用
      • 创建一个聚合模块,完成对分模块的统一管理
      • 小结
    • 继承
      • 实现
      • 继承依赖定义与使用
      • 同样也可以在父工程中对插件的版本进行统筹管理
      • 继承的资源
    • 继承与聚合
  • 属性
    • 版本统一的重要性
      • 场景
    • 定义【每个项目的父工程必须导入一下三个属性】
    • 属性类别
      • 自定义属性
      • 内置属性
      • setting属性
      • Java系统属性
      • 环境变量属性
      • 每个项目的父工程必须导入一下三个属性
  • 版本管理
    • 工程版本
      • 工程版本号约定
  • 资源配置
    • 资源配置多文件维护
    • 配置文件引用pom属性
  • 多环境开发配置
    • 多环境兼容
    • 多环境配置
    • 加载指定环境
  • 跳过测试
    • 使用命令跳过测试---适用所有maven项目
    • 使用配置跳过测试
    • Maven的常用指令
  • 私服---小范围内资源共享
    • 分模块合作开发
    • Nexus
    • Nexus*安装、启动与配置
    • 私服资源获取
    • 仓库分类
    • 资源上传
    • idea环境中资源上传与下载
      • 本地仓库访问私服
    • 访问私服配置( 项目工程访问私服)

Maven概念

在这里插入图片描述


Maven的作用

在这里插入图片描述


maven下载地址

maven官网下载地址


maven环境变量配置

在这里插入图片描述
MAVEN_HOME环境配置:

在这里插入图片描述
在这里插入图片描述

检测maven配置成功的标识:
在这里插入图片描述


仓库

在这里插入图片描述
在这里插入图片描述


坐标

在这里插入图片描述


本地仓库配置

在这里插入图片描述

本地仓库具体配置步骤:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


远程仓库配置

在这里插入图片描述

镜像仓库配置

在这里插入图片描述

步骤;

在这里插入图片描述
在这里插入图片描述

	   <!--配置具体的仓库下载镜像-->
	     <mirror>
		   <!--此镜像的唯一标识符,用来区分不同的mirror元素-->
      <id>nexus-aliyun</id>
	    <!--对那种仓库镜像,简单说就是替代哪个仓库-->
      <mirrorOf>central</mirrorOf>
	    <!--镜像名称-->
      <name>Nexus aliyun</name>
	  <!--镜像URL-->
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>

全局setting 和 用户setting 区别

在这里插入图片描述


maven工程目录结构

在这里插入图片描述
maven构建的web项目与普通的java项目区别在于,少了一个wepapp文件


maven项目构建命令

在这里插入图片描述
clean清理的是target目录


插件创建工程

cmd窗口中输入以下命令即可:

在这里插入图片描述


使用maven创建java项目的pom.xml配置演示—不使用骨架

<?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>org.example</groupId>
    <artifactId>111</artifactId>
    <version>1.0-SNAPSHOT</version>
     <!--
         打包方式:
         1.jar: java项目。 默认值
         2. war: web项目
         3. pom
     -->
    <packaging>jar</packaging>
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

</project>

还需要在测试目录下面,添加一个resource文件,这样目录结构就完整了
在这里插入图片描述


使用maven创建java项目的pom.xml配置演示—使用骨架

在这里插入图片描述
在这里插入图片描述
如果有需要可以创建两个resource文件,用来存放配置文件


使用maven创建web项目的pom.xml配置演示—不使用骨架

首先要在pom.xml中规定打包方式为war包
在这里插入图片描述
补齐webapp目录结构


使用tomcat插件启动web项目

需要配置tomcat插件,可以在配置插件的同时通过port和path配置端口号和虚拟目录
在这里插入图片描述


依赖配置—dependencies

在这里插入图片描述


依赖传递

在这里插入图片描述

依赖冲突问题

在这里插入图片描述

可选依赖—对外隐藏

在这里插入图片描述

排除依赖

在这里插入图片描述
在这里插入图片描述


依赖范围

默认为complie

<scope>test</scope>

在这里插入图片描述

依赖范围传递性

在这里插入图片描述
在这里插入图片描述


生命周期与插件

在这里插入图片描述


clean生命周期

在这里插入图片描述


default构建生命周期

在这里插入图片描述

插件—build

使用Build方式添加

在这里插入图片描述

生命周期是几岁,插件是几岁干了什么事情

上面的插件是在测试阶段,对源码进行打包

<goal>jar</goal>
<goal>test-jar</goal>

上面的写法是同时打两个包,一个源码包,一个一个测试包

execution是执行的意思,goal是目标的元素,phase是时期的意思


可以使用alt + insert快速导入jar包和插件

在这里插入图片描述
快速导入的前提是本地仓库有相关jar包或者插件


Maven高级部分

分模块开发与设计

介绍

如果项目很大,那么可以在项目搭建时,考虑使用 Maven 多模块功能。比如一个能力平台,可能分为API 模块、日志模块与计费模块等等。这样做的好处是:

(1) 方便重用。一个新项目如果需要使用某个模块时,就可以直接将其依赖过来;

(2) 每个模块都有各自的 pom.xml 配置,可以根据模块需要添加各自的第三方依赖;

(3) 每个模块都可以独立进行构建,特别是在微服务项目,我们可以把某些已经稳定的模块发布到 docker镜像中,然后只构建我们目前仍然需要进行开发的项目;

(4) 某些模块可以打成 jar作为公共组件库以供其它项目依赖使用。


SSM项目多模块开发作为案例

在这里插入图片描述
将SSM项目拆分为多个模块进行开发

ssm_pojo拆分:

1.新建模块
    在同级目录下建立模块
    new module-->maven -->组名com.itheima
    名称--ssm_pojo-->放置在同级别目录下
2.拷贝原始项目中对应的相关内容(实体类)到ssm_pojo中
    domain包全表拷贝
3.配置文件 不做修改
    # 由于实体类的API全是idea自带,故不去修改配置
4.compile:编译
    测试编译是否通过

添加到本地仓库 的操作install,如果不添加到本地仓库,那么maven就无法找到对应的资源


ssm_dao拆分

1.新建模块
    在同级目录下建立模块
    new module-->maven -->组名com.itheima
    名称--ssm_dao-->放置在同级别目录下
2.拷贝原始项目中对应的相关内容到ssm_dao中
   * 数据层接口
   * 配置文件:保留与数据层相关配置文件3* 注意:分页插件在配置中与SqlSessionFactoryBear绑定,需要保留   
3.配置文件pom.xml 引入数据层相关坐标即可,删除springmvc相关坐标
       *spring
       *mybatis
       *spring整合mybatis
       *mysql
       *druid
       *pagehelper
       *导入资源文件=>直接依赖ssm_pojo,需要对ssm_pojo模块执行install指令,将其安装到本地仓库
4.compile:编译
       (编译要保证仓库有对应的资源)
    测试编译是否通过(需要先对ssm_pojo模块执行install指令),否则仓库里找不到

当我们编译模块时,必须保证仓库有对应的资源


ssm_service拆分

1.新建模块
    在同级目录下建立模块
    new module-->maven -->组名com.itheima
    名称--ssm_service-->放置在同级别目录下
2.拷贝原始项目中对应的相关内容到ssm_service中
   业务层接口与实现类(xxxService和xxxServiceImpl)
    保留与数据层相关配置
3.配置文件 pom.xml  引入数据层相关坐标即可,删除springmvc相关坐标
    *spring
    *junit
    *spring整合junit
    *直接依赖ssm_dao(对ssm_dao模块执行install指令,将其安装到本地仓库,在导入依赖)
    *间接依赖ssm_pojo(由ssm_dao模块负责依赖关系建立)
   
4.compile:编译
    测试编译是否通过
    
 5.其他
    1.修改service模块的spring核心配置文件名,添加模块名称,格式:applicationContext-service.xml
    2.修改dao模块的spring核心配置文件名,添加模块名称,格式:applicationContext-dao.xml
    3.修改单元测试引入的配置文件名,由单个文件修改为多个文件


ssm_control拆分

1.新建模块
    在同级目录下建立模块
    new module-->maven  (由于是表现层需要选择模板webapp) -->组名com.itheima
    名称--ssm_control-->放置在同级别目录下
2.拷贝原始项目中对应的相关内容到ssm_control中
   表现层控制器类与相关设置类(controller和异常相关)
   配置文件:保留与表现层相关的配置文件,服务器相关配置文件
3.配置文件 pom.xml  引入数据层相关坐标即可,删除springmvc相关坐标
    *spring
    *springmvc
    *jackson
    *servlet
    *tomcat服务器插件   
    *直接依赖ssm_service(对ssm_service模块执行install指令,将其安装到本地仓库,在导入依赖)
    *间接依赖ssm_pojo和ssm_pojo
   
4.compile:编译
    测试编译是否通过
修改web.xml配置文件中加载spring环境的配置文件名称.使用*通配,加载所有的applicationContext-开始的配置文件    


聚合

多模块构建维护

在这里插入图片描述

多模块构建维护
    多个模块全部 install到了本地仓库
    其中一个更新或损坏,会导致其他与他依赖的功能无法运行
    
    解决方法:
定义一个工程进行统一维护管理,即创建一个聚合模块
功能:对管理范围内的模块,进行统一操作
    
    <packaging>war</packaging>
    默认打包为jar文件,声明为war,则打包为war文件

作用

作用:聚合用于快速构建内maven工程,一次性构建多个项目/模块


创建一个聚合模块,完成对分模块的统一管理

<!--创建一个空模块,打包类型定义为pom -->

<!--定义该工程用于构建管理 -->
<packaging>pom</packaging>

<!--定义当前模块进行构建操作时关联的其他模块名称 -->

<!--管理工程列表 -->
<modules>
    <!--具体的工程名称 -->
    <module>../ssm_controller</module>
    <module>../ssm_service</module>
    <module>../ssm_dao</module>
    <module>../ssm_pojo</module>
</modules>
注意事项:参与聚合操作的模块最终执行顺序与模块间的依赖关系有关,与配置顺序无关

小结

作用:方便进行批量的项目打包等操作

注意事项:参与聚合操作的模块最终执行顺序与模块间的依赖关系有关,与配置顺序无关
(线性依赖)

同级别的则与配置顺序有关(即非线性依赖)

packaging 默认是jar形式(所有的资源文件都是以jar包形式呈现的)

pom是专门做聚合工程的

war是web工程
在这里插入图片描述


继承

在这里插入图片描述

起因:各个模块所依赖的配置文件版本未必同步与兼容
模块依赖关系维护
    统一管理子项目的资源,即统一管理子项目的依赖版本
    
    继承
    作用:通过继承可以实现在子过程中沿用父类中的配置,这里注意沿用父类中依赖的版本
        * maven中的继承与java中的继承相似,在子过程中配置继承关系       

实现

在每一个子工程中声明其父工程坐标与对应的位置

<!--定义该工程的父工程 -->
<parent>
<!--当前工程的父工程就是ssm工程-->
    <groupId>com.itheima</groupId>
    <artifactId>ssm</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!-- 填写父工程的pom文件的相对路径 -->
    <relativePath>../ssm/pom.xml</relativePath>
</parent>

------------------controller模块------------------------------

    <!--原则上子工程和父工程属于同样的组织id,因此groupId可以省略不写-->
    <artifactId>ssm_control</artifactId><!--只留下项目id-->
     <!--工程版本尽量与父工程保持一致,因此版本号也可以省略不写-->
    <!-- 只有controller(web工程的)pom文件需要打包weiwar -->
    <packaging>war</packaging>
 
---------------------service模块-------------------------------------
    
    <!-- 其余的拆分工程(非web工程的)pom文件需要打包jar -->
    <!--<artifactId>ssm_service</artifactId>-->
    <!--<packaging>jar</packaging>-->

继承依赖定义与使用

在父工程中定义依赖管理

父工程中统一管理版本问题,防止版本不兼容的问题

<!-- 声明此处进行依赖管理-->
<dependencyManagement>
    <!-- 具体的依赖-->
    <dependencies>
         <!--添加自己的工程模块依赖-->
            <dependency>
                <groupId>com.itheima</groupId>
                <artifactId>ssm_pojo</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>

            <dependency>
                <groupId>com.itheima</groupId>
              <artifactId>ssm_dao</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>

            <dependency>
                <groupId>com.itheima</groupId>
                <artifactId>ssm_service</artifactId>
                <version>1.0-SNAPSHOT</version>
            </dependency>
        <!--spring环境 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.1.9.RELEASE</version>
    	</dependency>
    <dependencies>
<dependencyManagement>

在子工程中定义依赖关系,无需声明依赖版本,版本参照父工程中依赖的版本

<dependencies>
    <!--spring环境-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
    </dependency>
</dependencies>

同样也可以在父工程中对插件的版本进行统筹管理

    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
      </plugins>
    </pluginManagement>

继承的资源

在这里插入图片描述


继承与聚合

作用:
   ** 聚合用于快速构建项目,聚合模块统筹管理所有模块
   ** 继承用于快速匹配,统一依赖版本
       
       
  相同点:
      **聚合和继承的pom.xml文件打包方式均为pom,可以将两种关系制作到同一pom文件中
      ** 聚合与继承均属于设计型模块,并无实际内容
          
  不同点:
    ** 聚合是在当前模块中配置关系,聚合可以感知到参与聚合的模块有哪些
    ** 继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己    


可继承的资源:
  
   子项目必须继承的资源
       dependencies
       plugins
   子项目可选择继承的资源   
      dependencyManagement : 工程中一般用于统一子项目的依赖版本
      pluginManagement    
不可继承的资源
       artifactld

属性

版本统一的重要性

场景

1.版本更改 不全面,有遗漏,导致部分版本未能更新
2.版本配置有冲突 

定义【每个项目的父工程必须导入一下三个属性】

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <属性名称>属性值</属性名称>
    
</properties>

属性类别

  • 自定义属性
  • 内置属性
  • setting属性
  • java系统属性
  • 环境变量属性

自定义属性

作用:等同于定义变量,方便统一维护

定义格式

<!--自定义属性 -->
<properties>
    <spring.version>5.1.9.RELEASE</spring.version>
    <junit.version>4.12</junit.version>
</properties>

调用格式

............父工程..................................
<parent>
<!--当前工程的父工程就是ssm工程-->
    <groupId>com.itheima</groupId>
    <artifactId>ssm</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!-- 填写父工程的pom文件的相对路径 -->
    <relativePath>../ssm/pom.xml</relativePath>
</parent>
...................................................

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${spring.version}</version>
</dependency>

<!--定义工程模块 -->
<!--添加自己的工程模块依赖-->
            <dependency>
                <groupId>com.itheima</groupId>
                <artifactId>ssm_pojo</artifactId>
                <!--这里的version是内置属性,是父工程的版本-->
                <version>${version}</version>
              <!--由于父工程已经定义了版本 可以直接引用 -->  
            </dependency>

            <dependency>
                <groupId>com.itheima</groupId>
                <artifactId>ssm_dao</artifactId>
                <version>${version}</version>
            </dependency>

            <dependency>
                <groupId>com.itheima</groupId>
                <artifactId>ssm_service</artifactId>
                <version>${version}</version>
            </dependency>

内置属性

作用:使用maven内置属性,快速配置

调用格式

${basedir}//项目基础名
${version}

setting属性

作用:使用Maven配置文件setting.xml中的标签属性,用于动态配置

调用格式

${settings.localRepository}

Java系统属性

作用:读取Java系统属性

调用格式

${user.home}

系统属性查询方式

mvn help:system

环境变量属性

作用:使用Maven配置文件setting.xml中的标签属性,用于动态配置

调用格式

${env.JAVA_HOME}

环境变量属性查询方式

mvn help:system

每个项目的父工程必须导入一下三个属性

<properties>
    编译编码
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    使用JDK1.8版本
    <maven.compiler.source>1.8</maven.compiler.source>
    
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

版本管理

工程版本

在这里插入图片描述

SNAPSHOT(快照版本)

  • 项目开发过程中,为方便团队成员合作,解决模块间互相依赖和时时更新的问题
  • 开发者对每个模块进行构建的时候,输出的临时性版本较快照版本(测试阶段版本)
  • 快照版本会随着开发的进展不断更新

RELEASE(发布版本)

  • 项目开发进入到阶段里程碑后,向外发布较为稳定的版本,这种版本对应的构建是稳定的,即便进行功能的后续开发,也不会改变当前
  • 发布版本内容,这种版本称为发布版本

工程版本号约定

在这里插入图片描述


资源配置

资源配置多文件维护

在这里插入图片描述


在父工程中配置

    <!--自定义属性-->
    <properties>
        <!--不写具体的如spring-context 则可以代替全部相关jar包版本-->
        <spring.version>5.1.9.RELEASE</spring.version>

        <!--比如管理dao的资源配置文件-->
       <!-- 可以自定义名称,特别是多个资源文件时 多环境不配置在这个位置-->
        <jdbc.url>jdbc:mysql://192.168.93.139:3306/db777</jdbc.rrl>
        ...
    </properties>

</pluginManagement>
     <!--配置资源文件对应的信息-->
        <resources>
            <resource>
                <!--通配模式加载相关的资源配置文件-->
                <!--${project.basedir}是项目基础名-->
                <directory>${project.basedir}/src/mian/resources</directory>
                <!--<directory>../ssm_dao/src/mian/resources</directory> 具体某一个资源配置文件-->
                <!--<directory>ssm_dao/src/mian/resources</directory> 这种配置错误,会从当前目录下寻找 寻找不到-->
              
                <!-- 开启对配置文件的资源加载过滤 -->
                <filtering>true</filtering>
            </resource>
        </resources>

<!--配置测试资源文件对应的信息-->
        <resources>
            <resource>
                <!--通配模式加载相关的资源配置文件-->
               <directory>${project.basedir}/src/test/resources</directory>
              
                <!-- 开启对配置文件的资源加载过滤 -->
                <filtering>true</filtering>
            </resource>
        </resources>

    </build>

配置文件引用pom属性

作用

在任意配置文件中加载pom文件中定义的属性

jadc.properties中调用格式

jdbc.url=${jdbc.url} 

开启配置文件加载pom属性

    <!--自定义属性-->
    <properties>
        <!--不写具体的如spring-context 则可以代替全部相关jar包版本-->
        <spring.version>5.1.9.RELEASE</spring.version>

        <!--比如管理dao的资源配置文件-->
       <!-- 可以自定义名称,特别是多个资源文件时 多环境不配置在这个位置-->
        <jdbc.url>jdbc:mysql://192.168.93.139:3306/db777</jdbc.rrl>
        
    </properties>
    
    ....
    
<!--配置资源文件对应的信息-->
<resources>
    <resource>
        <!--设定配置文件对应的位置目录,支持使用属性动态设定路径-->
        <directory>${project.basedir}/src/main/resources</directory>
        <!--开启对配置文件的资源加载过滤-->
        <filtering>true</filtering>
    </resource>
</resources>

多环境开发配置

多环境兼容

在这里插入图片描述


多环境配置

<!--创建多环境-->
<profiles>
    <!--定义具体的环境:生产环境-->
    <profile>
        <!--定义环境对应的唯一名称-->
        <id>pro_env</id>
        <!--定义环境中专用的属性值-->
        <properties>
            <jdbc.url>jdbc:mysql://127.1.1.1:3306/ssm_db</jdbc.url>
        </properties>
        <!--设置默认启动-->
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <!--定义具体的环境:开发环境-->
    <profile>
        <id>dev_env</id>
        ……
    </profile>
</profiles>

加载指定环境

作用

加载指定环境配置

调用格式

mvn 指令 –P 环境定义id

范例

在idea的窗口输入
        mvn 指令 –P 环境定义id
            如:
mvn install –P pro_env     

注意

install 没有指定使用哪一个配置文件 查看仓库的配置文件发现没有加载,还是jdbc.url=${jdbc.url} 没有解析出来
    
    启动install时指定用哪一个
    配置启动的指令:
      installl -P dep_env  //指定开发环境
检查仓库的配置文件jdbc.url=的值 是否已经改变

跳过测试

使用命令跳过测试—适用所有maven项目

在这里插入图片描述
在这里插入图片描述

- mvn 指令 -D skipTests  或  -DskipTests=true
    
- 属性跳过  maven.test.skip
- mvn 指令 -Dmaven.test.skip=true    
注意事项:
  执行的指令生命周期必须包含测试环节

使用配置跳过测试

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.1</version>
    <configuration>
        <skipTests>true</skipTests><!--设置跳过测试-->
        <includes> <!--包含指定的测试用例-->
            <include>**/User*Test.java</include>
        </includes>
        <excludes><!--排除指定的测试用例-->
            <exclude>**/User*TestCase.java</exclude>
        </excludes>
    </configuration>
</plugin>

Maven的常用指令

mvn clean -X package    输出完整的错误信息

私服—小范围内资源共享

分模块合作开发

在这里插入图片描述


Nexus

Nexus是Sonatype公司的一款maven私服产品

下载地址:https://help.sonatype.com/repomanager3/download


Nexus*安装、启动与配置

启动服务器(命令行启动)

nexus /run nexus
//    或者 nexus.exe /run nexus
    //后缀可以省略

访问服务器(默认端口:8081)

http://localhost:8081

修改基础配置信息

  • 安装路径下etc目录中nexus-default.properties文件保存有nexus基础配置信息,例如默认访问端口

修改服务器运行配置信息

  • 安装路径下bin目录中nexus.vmoptions文件保存有nexus服务器启动对应的配置信息,例如默认占用内存空间

私服资源获取

在这里插入图片描述


仓库分类

宿主仓库hosted

  • 保存无法从中央仓库获取的资源
  • 自主研发
  • 第三方非开源项目
  • https://www.jianshu.com/p/de9806ee4d28

代理仓库proxy

  • 代理远程仓库,通过nexus访问其他公共仓库,例如中央仓库

仓库组group

  • 将若干个仓库组成一个群组,简化配置
  • 仓库组不能保存资源,属于设计型仓库

资源上传

直接图形化操作上传(第三方资源)

注意事项:创建的仓库是什么类型,一般要声明上传的资源的类型

如创建的是release类型仓库,则上传的文件选择SNAPSHOT会报错

如果上传的文件不声明类型,该软件则不会处理


idea环境中资源上传与下载

在这里插入图片描述


本地仓库访问私服

配置本地仓库访问私服的权限(setting.xml)

<servers>
    <server>
        <id>heima-release</id>
        <username>admin</username>
        <password>admin</password>
    </server>
    <server>
        <id>heima-snapshots</id>
        <username>admin</username>
        <password>admin</password>
    </server>
</servers>

配置本地仓库资源来源(setting.xml)

<mirrors>
    <mirror>
        <id>nexus-heima</id>
        <mirrorOf>*</mirrorOf>
        <url>http://localhost:8081/repository/maven-public/</url>
    </mirror>
</mirrors>

mirrorOf:的值代表映射哪些资源,这里默认所有资源都去私服获取,而不是中央仓库


访问私服配置( 项目工程访问私服)

配置当前项目访问私服上传资源的保存位置(pom.xml)

<distributionManagement>
    <repository>
    <!--通过id去找咱在setting.xml配置的用户名和密码登录私服-->
        <id>heima-release</id>
        <!--如果是发布版,会放到私服的发布版仓库中-->
        <url>http://localhost:8081/repository/heima-release/</url>
    </repository>
    <snapshotRepository>
        <id>heima-snapshots</id>
        <url>http://localhost:8081/repository/heima-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

发布资源到私服命令

mvn deploy

赞(0) 打赏
未经允许不得转载:IDEA激活码 » Maven相关知识点整理

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区