前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Maven相关知识点整理

Maven相关知识点整理

作者头像
大忽悠爱学习
发布2021-11-15 15:03:10
1.4K0
发布2021-11-15 15:03:10
举报
文章被收录于专栏:c++与qt学习c++与qt学习

Maven相关知识点整理

Maven概念

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

Maven的作用

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

maven下载地址

maven官网下载地址


maven环境变量配置

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

MAVEN_HOME环境配置:

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

检测maven配置成功的标识:

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

仓库

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

坐标

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

本地仓库配置

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

本地仓库具体配置步骤:

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

远程仓库配置

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

镜像仓库配置

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

步骤;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
	   <!--配置具体的仓库下载镜像-->
	     <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配置演示—不使用骨架

代码语言:javascript
复制
<?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

代码语言:javascript
复制
<scope>test</scope>
在这里插入图片描述
在这里插入图片描述

依赖范围传递性

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

生命周期与插件

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

clean生命周期

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

default构建生命周期

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

插件—build

使用Build方式添加

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

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

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

代码语言:javascript
复制
<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拆分:

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

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


ssm_dao拆分

代码语言:javascript
复制
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拆分

代码语言:javascript
复制
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拆分

代码语言:javascript
复制
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-开始的配置文件    

聚合

多模块构建维护

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

作用

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


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

代码语言:javascript
复制
<!--创建一个空模块,打包类型定义为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工程

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

继承

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

实现

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

代码语言:javascript
复制
<!--定义该工程的父工程 -->
<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>-->

继承依赖定义与使用

在父工程中定义依赖管理

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

代码语言:javascript
复制
<!-- 声明此处进行依赖管理-->
<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>

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

代码语言:javascript
复制
<dependencies>
    <!--spring环境-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
    </dependency>
</dependencies>

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

代码语言:javascript
复制
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
      </plugins>
    </pluginManagement>

继承的资源

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

继承与聚合

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


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

属性

版本统一的重要性

场景

代码语言:javascript
复制
1.版本更改 不全面,有遗漏,导致部分版本未能更新
2.版本配置有冲突 

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

代码语言:javascript
复制
<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系统属性
  • 环境变量属性

自定义属性

代码语言:javascript
复制
作用:等同于定义变量,方便统一维护

定义格式

代码语言:javascript
复制
<!--自定义属性 -->
<properties>
    <spring.version>5.1.9.RELEASE</spring.version>
    <junit.version>4.12</junit.version>
</properties>

调用格式

代码语言:javascript
复制
............父工程..................................
<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内置属性,快速配置

调用格式

代码语言:javascript
复制
${basedir}//项目基础名
${version}

setting属性

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

调用格式

代码语言:javascript
复制
${settings.localRepository}

Java系统属性

作用:读取Java系统属性

调用格式

代码语言:javascript
复制
${user.home}

系统属性查询方式

代码语言:javascript
复制
mvn help:system

环境变量属性

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

调用格式

代码语言:javascript
复制
${env.JAVA_HOME}

环境变量属性查询方式

代码语言:javascript
复制
mvn help:system

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

代码语言:javascript
复制
<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(发布版本)

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

工程版本号约定

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

资源配置

资源配置多文件维护

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

在父工程中配置

代码语言:javascript
复制
    <!--自定义属性-->
    <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>

代码语言:javascript
复制
</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中调用格式

代码语言:javascript
复制
jdbc.url=${jdbc.url} 

开启配置文件加载pom属性

代码语言:javascript
复制
    <!--自定义属性-->
    <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>

多环境开发配置

多环境兼容

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

多环境配置

代码语言:javascript
复制
<!--创建多环境-->
<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>

加载指定环境

作用

加载指定环境配置

调用格式

代码语言:javascript
复制
mvn 指令 –P 环境定义id

范例

代码语言:javascript
复制
在idea的窗口输入
        mvn 指令 –P 环境定义id
            如:
mvn install –P pro_env     

注意

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

跳过测试

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
- mvn 指令 -D skipTests  或  -DskipTests=true
    
- 属性跳过  maven.test.skip
- mvn 指令 -Dmaven.test.skip=true    
注意事项:
  执行的指令生命周期必须包含测试环节

使用配置跳过测试

代码语言:javascript
复制
<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的常用指令

代码语言:javascript
复制
mvn clean -X package    输出完整的错误信息

私服—小范围内资源共享

分模块合作开发

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

Nexus

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

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


Nexus*安装、启动与配置

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

代码语言:javascript
复制
nexus /run nexus
//    或者 nexus.exe /run nexus
    //后缀可以省略

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

代码语言:javascript
复制
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)

代码语言:javascript
复制
<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)

代码语言:javascript
复制
<mirrors>
    <mirror>
        <id>nexus-heima</id>
        <mirrorOf>*</mirrorOf>
        <url>http://localhost:8081/repository/maven-public/</url>
    </mirror>
</mirrors>

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


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

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

代码语言:javascript
复制
<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>

发布资源到私服命令

代码语言:javascript
复制
mvn deploy
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 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环境中资源上传与下载
                                                      • 本地仓库访问私服
                                                    • 访问私服配置( 项目工程访问私服)
                                                    相关产品与服务
                                                    容器服务
                                                    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                                                    领券
                                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档