【Maven学习】-1. 简介

news2024/11/23 12:49:34

文章目录

  • Maven学习
  • 1. 简介
    • 1.1 介绍
    • 1.2 安装
      • 1.2.1 下载
      • 1.2.2 安装maven
      • 1.2.3 配置镜像源(加快下载)
      • 1.2.4 IDEA配置maven
    • 1.3 基于IDEA进行Maven工程构建
      • Maven工程的GAVP
      • 创建
      • Maven工程项目结构说明
    • 1.4 Maven生命周期
      • 1.4.1 介绍
      • 1.4.2 命令讲解
        • 编译(mvn compile)
        • 删除(mvn clean)
        • 测试(mvn test)
        • 报告
        • 打包(mvn package)
        • 安装(mvn install)
      • 1.4.3 可视化构建
      • 1.4.4 构建的周期
      • 1.4.5 Maven 插件

Maven学习

名称链接备注
maven首页地址https://maven.apache.org/
maven历史版本下载https://archive.apache.org/dist/maven/maven-3/不同版本需要适配不同的jdk
maven仓库http://mvnrepository.com/
视频链接https://www.bilibili.com/video/BV1JN411G7gX
阿里云镜像仓库https://developer.aliyun.com/mvn/guide

推荐几个好的 Maven 常用仓库网址:

  • http://mvnrepository.com/
  • http://search.maven.org/
  • http://repository.sonatype.org/content/groups/public/
  • http://people.apache.org/repo/m2-snapshot-repository/
  • http://people.apache.org/repo/m2-incubating-repository/

1. 简介

1.1 介绍

1.2 安装

1.2.1 下载

第一步,打开页面,选择自己想要的版本https://maven.apache.org/docs/history.html

在这里插入图片描述

打开以下页面,进行下载

https://archive.apache.org/dist/maven/maven-3/

QQ_1721964244618

QQ_1721964284803

如果是windows选择zip。如果是linux选择 bin用户

在这里插入图片描述

bin:含有Maven的运行脚本

boot:含有plexus-classworlds类加载器框架

conf:含有Maven的核心配置文件

lib:含有Maven运行时所需要的Java类库

LICENSE、NOTICE、README.txt:针对Maven版本,第三方软件等简要介绍

1.2.2 安装maven

step 1: 配置 MAVEN_HOME(在系统变量中配置)

在这里插入图片描述

step 2: 配置Path

%MAVEN_HOME%\bin
在这里插入图片描述

step 3: 命令测试(cmd窗口)

mvn -v 
# 输出版本信息即可,如果错误,请仔细检查环境变量即可!

在这里插入图片描述

1.2.3 配置镜像源(加快下载)

我们需要需改maven/conf/settings.xml配置文件,来修改maven的一些默认配置。我们主要休要修改的有三个配置:

1.依赖本地缓存位置(本地仓库位置)

2.maven下载镜像

3.maven选用编译项目的jdk版本

配置本地仓库地址(注意下方,默认的本地仓库为:${user.home}/.m2/repository)
在自己设置本地仓库路径时,注意不要有中文和空格文件名,且后续如果 jar ,我们需要手动找到并删除

  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>
  -->
 <!-- conf/settings.xml 55行 -->
 <localRepository>D:\maven-repository</localRepository>

配置镜像源

<!--在mirrors节点(标签)下添加中央仓库镜像 160行附近-->
<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf>
</mirror>

配置jdk17版本项目构建

<!--在profiles节点(标签)下添加jdk编译版本 268行附近-->
<profile>
    <id>jdk-17</id>
    <activation>
      <activeByDefault>true</activeByDefault>
      <jdk>17</jdk>
    </activation>
    <properties>
      <maven.compiler.source>17</maven.compiler.source>
      <maven.compiler.target>17</maven.compiler.target>
      <maven.compiler.compilerVersion>17</maven.compiler.compilerVersion>
    </properties>
</profile>

1.2.4 IDEA配置maven

我们需要将配置好的maven软件,配置到idea开发工具中即可! 注意:idea工具默认自带maven配置软件,但是因为没有修改配置,建议替换成本地配置好的maven!

选择本地maven软件

在这里插入图片描述

注意:

1、如果本地仓库地址不变化,只有一个原因,就是maven/conf/settings.xml配置文件编写错误!仔细检查即可!

2、一定保证User settings file对应之前修改的settings.xml的路径,若不一致,选中Override复选框,手动选择配置文件

1.3 基于IDEA进行Maven工程构建

Maven工程的GAVP

maven和别的java项目有啥区别呢?

Maven工程相对之前的项目,多出一组gavp属性,gav(表示当前工程的坐标)需要我们在创建项目的时候指定,p(表示打包方式)有默认值(默认为 jar 包,因此在 java 中无无需单独设置),我们先行了解下这组属性的含义:

Maven 中的 GAVP 是指 GroupId、ArtifactId、Version、Packaging 等四个属性的缩写,其中前三个是必要的,而 Packaging 属性为可选项。这四个属性主要为每个项目在maven仓库中做一个标识,类似人的姓-名!有了具体标识,方便后期项目之间相互引用依赖等!

GAV遵循的规则:

  • GroupID 格式:com.{公司/BU }.业务线.[子业务线],最多 4 级。

    说明:{公司/BU} 例如:alibaba/taobao/tmall/aliexpress 等 BU 一级;子业务线可选。

    正例:com.taobao.tddl 或 com.alibaba.sourcing.multilang

  • ArtifactID 格式:产品线名-模块名。语义不重复不遗漏,先到仓库中心去查证一下。

    正例:tc-client / uic-api / tair-tool / bookstore

  • Version版本号格式推荐:主版本号.次版本号.修订号

    1) 主版本号:当做了不兼容的 API 修改,或者增加了能改变产品方向的新功能。

    2) 次版本号:当做了向下兼容的功能性新增(新增类、接口等)。

    3) 修订号:修复 bug,没有修改方法签名的功能加强,保持 API 兼容性。

    例如: 初始→1.0.0 修改bug → 1.0.1 功能调整 → 1.1.1等

  • Packaging定义规则

    指示将项目打包为什么类型的文件,idea根据packaging值,识别maven项目类型!

    packaging 属性为 jar(默认值),代表普通的Java工程,打包以后是.jar结尾的文件。

    packaging 属性为 war,代表Java的web工程,打包以后.war结尾的文件。

    packaging 属性为 pom,代表不会打包,用来做继承的父工程。

创建

首先注意设置项目的 SDK ,选择对应的 JDK 版本,每个新项目通常都无

QQ_1721871997655

接下来切换maven环境。不使用idea自带的

QQ_1721872143194

项目的目录结构。

  • 新建的 maven module 文件 src 下面有 main 有 test 两个文件,main 下面有 java resources,test 下面有 java ,注意这个结构是不能改的,这是 maven 工程默认的结构,规定的结构。

  • main 里面放的是核心程序,test 里面放的是测试程序。以后一定要把对应的内容放入到对应的文件中,这是规定。

QQ_1721872194779

pom内容讲解

QQ_1721872446358

切换打包方式。变成jar包

QQ_1721872490843

添加其他jar包

访问以下网站: https://mvnrepository.com/

在这里插入图片描述

直接搜索想要增加的 jar 包,这里以 junit 为例:

在这里插入图片描述

随便选择一个版本

在这里插入图片描述

这里就是 jar 包的所有信息,复制
在这里插入图片描述

粘贴到 pom.xml 文件中,放到 dependencies 标签中

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.9.3</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

QQ_1721872785236

我们可以看到在依赖中,添加了别人写的jar包

QQ_1721872810197

Maven工程项目结构说明

Maven 是一个强大的构建工具,它提供一种标准化的项目结构,可以帮助开发者更容易地管理项目的依赖、构建、测试和发布等任务。以下是 Maven Web 程序的文件结构及每个文件的作用:

|-- pom.xml                               # Maven 项目管理文件 
|-- src
    |-- main                              # 项目主要代码
    |   |-- java                          # Java 源代码目录
    |   |   `-- com/example/myapp         # 开发者代码主目录
    |   |       |-- controller            # 存放 Controller 层代码的目录
    |   |       |-- service               # 存放 Service 层代码的目录
    |   |       |-- dao                   # 存放 DAO 层代码的目录
    |   |       `-- model                 # 存放数据模型的目录
    |   |-- resources                     # 资源目录,存放配置文件、静态资源等
    |   |   |-- log4j.properties          # 日志配置文件
    |   |   |-- spring-mybatis.xml        # Spring Mybatis 配置文件
    |   |   `-- static                    # 存放静态资源的目录
    |   |       |-- css                   # 存放 CSS 文件的目录
    |   |       |-- js                    # 存放 JavaScript 文件的目录
    |   |       `-- images                # 存放图片资源的目录
    |   `-- webapp                        # 存放 WEB 相关配置和资源
    |       |-- WEB-INF                   # 存放 WEB 应用配置文件
    |       |   |-- web.xml               # Web 应用的部署描述文件
    |       |   `-- classes               # 存放编译后的 class 文件
    |       `-- index.html                # Web 应用入口页面
    `-- test                              # 项目测试代码
        |-- java                          # 单元测试目录
        `-- resources                     # 测试资源目录

  • pom.xml:Maven 项目管理文件,用于描述项目的依赖和构建配置等信息。
  • src/main/java:存放项目的 Java 源代码。
  • src/main/resources:存放项目的资源文件,如配置文件、静态资源等。
  • src/main/webapp/WEB-INF:存放 Web 应用的配置文件。
  • src/main/webapp/index.jsp:Web 应用的入口页面。
  • src/test/java:存放项目的测试代码。
  • src/test/resources:存放测试相关的资源文件,如测试配置文件等。

1.4 Maven生命周期

1.4.1 介绍

Maven生命周期是一系列阶段的集合,定义了项目的构建过程。常用的生命周期包括:

  • clean: 清理项目,删除 target 目录。
  • validate: 验证项目是否正确。
  • compile: 编译项目的源代码。
  • test: 使用单元测试框架运行测试。
  • package: 将编译好的代码打包成可分发的格式,比如JAR。
  • verify: 对集成测试的结果进行验证,以保证质量。
  • install: 将打包好的项目发布到本地仓库。
  • deploy: 将项目发布到远程仓库。

在这里插入图片描述

这些生命周期是顺序执行的,你可以在某一个生命周期的阶段执行自定义的插件任务。

 <build>
    <!--扫描文件资源-->
    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.xml</include>
        </includes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*.xml</include>
        </includes>
      </resource>
    </resources>

 <!--插件-->
 <pluginManagement><!-- lock down plugins versions to avoid 
 using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <!-- clean lifecycle, see https://maven.apache.org/ref/current
        /maven-core/lifecycles.html#clean_Lifecycle -->
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- default lifecycle, jar packaging: see 
        https://maven.apache.org/ref/current/maven-core/default-
        bindings.html#Plugin_bindings_for_jar_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <!-- site lifecycle, see https://maven.apache.org/ref/current/
        maven-core/lifecycles.html#site_Lifecycle -->
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.7.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

1.4.2 命令讲解

命令描述
mvn compile编译项目,生成target文件
mvn package打包项目,生成jar或war文件
mvn clean清理编译或打包后的项目结构
mvn install打包后上传到maven本地仓库
mvn deploy只打包,上传到maven私服仓库
mvn site生成站点
mvn test执行测试源码

这里我们新建一个类

添加依赖

   <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>

QQ_1721877140610

新建用户类

package com.lkcoffee.framework;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @Desciption:
 * @Author: feixiang.li
 * @date: 2024-07-25 10:34
 **/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    /**
     * 用户ID
     */
    private Long id;
    /**
     * 用户姓名
     */
    private String name;
    /**
     * 用户年龄
     */
    private int age;
    /**
     * 用户地址
     */
    private String address;
}

MyTest类

package com.lkcoffee.framework;

/**
 * @Desciption:
 * @Author: feixiang.li
 * @date: 2024-07-25 10:26
 **/
public class MyTest {

    public static void main(String[] args) {
        User user = new User(1L,"joker", 18, "北京");
        System.out.println(user);
        System.out.println("hello world");
    }
}

编译(mvn compile)

QQ_1721877182983

我们看下自动生成的target。字节码文件以 .class 为后缀

QQ_1721877203720

父工程一般是不生成target目录的。所以代码的话尽量写在子工程

QQ_1721877304270

删除(mvn clean)

输入进去过后,会把target目录删除掉

QQ_1721878691813

测试(mvn test)

添加依赖

  <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>

创建测试类

package com.lkcoffee.framework;

import org.junit.Assert;
import org.junit.Test;

/**
 * @Desciption:
 * @Author: feixiang.li
 * @date: 2024-07-25 11:39
 **/
public class MyTest {


    @Test
    public void test1(){
        int a=10;
        int b=20;
        // 使用断言
        Assert.assertEquals(a+b,30);
    }
}

QQ_1721878899303

这个时候,我们想要编译文件,就必须输入以下命令,编译test中的代码并且运行test类中的方法

mvn test

QQ_1721886066900

下面的命令是编译test文件夹。但是不运行test类中方法

mvn test-compile

QQ_1721878985266

注意点,测试的方法名字和测试的类名是要注意的,有一定的匹配规则,当没有test名字的时候,运行是不编译的

规则如下: 必须以Test开头,或者Test结尾,或者Tests结果,或者TestCase

QQ_1721886325372

案例,我们把代码改成一下内容

package com.lkcoffee.framework;

import org.junit.Assert;
import org.junit.Test;

/**
 * @Desciption:
 * @Author: feixiang.li
 * @date: 2024-07-25 11:39
 **/
public class MyAAA {


    @Test
    public void aaa(){
        int a=10;
        int b=20;
        System.out.println("运行了aaa");
        // 使用断言
        Assert.assertEquals(a+b,30);
    }
}

运行mvn test。我们可以看到代码是不运行的

QQ_1721886435433

报告

报告是没有命令的,他在运行的时候,就会自动生成报告信息

比如运行mvn clean test

报告的目录在surefire-reports下面。

QQ_1721886689474

打包(mvn package)

运行mvn clean package

QQ_1721886889753

我们看信息。这里就涉及到很多的插件。插件的使用方式在后面的 plugins配置里面即可。

QQ_1721886985422

安装(mvn install)

运行

mvn install 

QQ_1721887955502

运行完mvn install。我们可以看到本地的仓库中就可以看到jar。按照maven的坐标进行寻找。

所有的包都是按照maven的坐标按照到本地的。

QQ_1721887996072

别的模块想使用

QQ_1721888057448

然后再代码中即可使用

QQ_1721888154576

1.4.3 可视化构建

把手动输入命令的功能可视化

在这里插入图片描述

1.4.4 构建的周期

构建周期作用:会简化构建过程

例如:项目打包 mvn clean package即可。

我们会发现在运行package的时候,会先编译,然后测试,再来打包。

QQ_1721888899286

主要两个构建生命周期:

  • 清理周期:主要是对项目编译生成文件进行清理

    包含命令:clean

  • 默认周期:定义了真正构件时所需要执行的所有步骤,它是生命周期中最核心的部分

    包含命令:compile - test - package - install - deploy

1.4.5 Maven 插件

Maven 插件是执行构建任务的工具,它们与生命周期和阶段相关联。常见的插件包括:

  • maven-compiler-plugin: 用于编译Java源代码。
  • maven-surefire-plugin: 用于执行单元测试。
  • maven-jar-plugin: 用于打包JAR文件。
  • maven-failsafe-plugin: 用于执行集成测试。

pom.xml 文件中,可以通过配置插件来定制项目的构建过程。以下是一个例子,使用 maven-compiler-plugin 插件配置Java编译器版本:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

这里,我们配置了 maven-compiler-plugin 插件,指定了Java源代码和目标字节码的版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1953367.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

26 Python序列结构

Python 中常用的序列结构有列表、元组、字典、字符串、集合等。 从是否有序这个角度看&#xff0c;Python 序列可以分为有序序列和无序序列&#xff1b;从是否可变来看&#xff0c;Python 序列可以分为可变序列和不可变序列两大类。 生成器对象和 range、map、enumerate、filte…

libtorch学习历程(1)环境搭建:VS+libtorch

1. 开发环境 Win11VS 2022 CommunityRTX4060pytorch 2.4.0cu121&#xff08;事先安装好&#xff09;libtorch 2.4.0cu121 release版opencv 4.10.0 2.软件下载 2.1 VS 直接去官网下载即可&#xff0c;最好是2017版本之后&#xff0c;需要选择C的桌面开发。 2.1 opencv 下…

嵌入式人工智能(30-基于树莓派4B的气体传感器-MQ系列烟雾、酒精、空气质量等传感器)

1、气体传感器 气体传感器是一种用于检测和测量空气中各种气体浓度的设备。它们通常使用化学反应、光学原理或电化学原理来检测气体&#xff0c;并通过输出电信号或其他输出形式来指示测量结果。 气体传感器在许多领域都有应用&#xff0c;包括工业安全、环境监测、室内空气质…

photoshop学习笔记——移动工具

移动工具&#xff0c;可以对图层进行移动&#xff0c;快捷键 V 使用的素材已经放上了&#xff0c;直接下载即可 按住ctrl 可以自动选取&#xff0c;鼠标点击哪个对象&#xff0c;自动选中哪个图层 按住 shift 校正角度&#xff08;只能沿着直线移动&#xff09; 按住 alt 拖…

第 1 章 预备知识

1、C简介 C继承了 C 语言高效、简洁、快速和可移植性的传统。C面向对象的特性带来了全新的编程方法&#xff0c;这种方法是为应付复杂程度不断提高的现代编程任务而设计的。 C的模板特性提供了另一种全新的编程方法——泛型编程。 C融合了 3 种不同的编程方式&#xff1a;C …

请你谈谈:spring bean的生命周期 - 阶段5:BeanPostProcessor前置处理-自定义初始化逻辑-BeanPostProcess后置处理

BeanPostProcessor的postProcessBeforeInitialization方法是在bean的依赖注入&#xff08;即属性填充&#xff09;完成后&#xff0c;但在bean的初始化回调&#xff08;如PostConstruct注解的方法或InitializingBean接口的afterPropertiesSet方法&#xff09;之前被调用的。 具…

大模型算法备案各项要求详细说明

2024年3月1日&#xff0c;我国通过了《生成式人工智能服务安全基本要求》&#xff08;以下简称《AIGC安全要求》&#xff09;&#xff0c;这是目前我国第一部有关AIGC服务安全性方面的技术性指导文件&#xff0c;对语料安全、模型安全、安全措施、词库/题库要求、安全评估等方面…

Windows按钮快捷键解释(有摸鱼技巧!):(个人尝试)另外警告:仅代表UP建议,不一定适用于所有电脑!谨慎尝试哦~好好工作!杜绝摸鱼!引以为戒!

哈喽&#xff01;各位好&#xff0c;我们来一期电脑专题的&#xff08;快捷键&#xff09;第一次尝试&#xff0c;你们看看吧&#xff01; 警告&#xff1a;仅代表UP建议&#xff0c;不一定适用于所有电脑&#xff01;谨慎尝试哦~好好工作&#xff01;杜绝摸鱼&#xff01; 一…

HarmonyOs之 路由简单跳转

Navigation路由相关的操作都是基于页面栈NavPathStack提供的方法进行&#xff0c;每个Navigation都需要创建并传入一个NavPathStack对象&#xff0c;用于管理页面。主要涉及页面跳转、页面返回、页面替换、页面删除、参数获取、路由拦截等功能。 Entry Component struct Index …

算法通关:006_3二分查找:查找数组中<=num 最右边的值

文章目录 说明主要代码全部代码运行结果 说明 大于等于最右不考&#xff0c;意义不大。 直接看&#xff08;arr.length-1&#xff09; 位&#xff08;即数组最后一位&#xff09;&#xff0c;如果大于num&#xff0c;那就说明arr[arr.length-1]是大于等于最右的数字数组最后一…

【视频讲解】ResNet深度学习神经网络原理及其在图像分类中的应用|附Python代码

全文链接&#xff1a;https://tecdat.cn/?p37134 原文出处&#xff1a;拓端数据部落公众号 分析师&#xff1a;Canglin Li 本文深入探讨了卷积层&#xff08;Convolutional Layer&#xff09;在深度学习框架中的核心作用与操作机制&#xff0c;并分析了其在特征提取、网络构…

学习记录701@org.hibernate.MappingException: No Dialect mapping for JDBC

使用spring data jpa 时报错&#xff1a;javax.persistence.PersistenceException: org.hibernate.MappingException: No Dialect mapping for JDBC type: 0。 但是在数据库中sql是可以执行的。 我是用的是原生查询&#xff1a; Query query entityManager.createNativeQuer…

ElasticSearch(七)— 相关性检索和组合查询

一、 相关性评分 全文检索与数据库查询的一个显著区别&#xff0c; 就是它并不一定会根据查询条件 做完全精确的匹配。除了模糊查询以外&#xff0c;全文检索还会根据查询条件给文档的相关性打分并排序&#xff0c;将那些与查询条件相关性高的文档排在最前面。 相关性( Relev…

计算机二级题--结构体及链表 章节

之前写的有结构体全部的知识点&#xff0c;这一篇主要针对计算机二级真题的整理。 需要备考计算机二级的小伙伴们先收藏起来吧。整理不易&#xff0c;不过有帮助记得点赞哦 高频考点&#xff08;容易出错&#xff0c;附有例题&#xff09; 1.结构体传参&#xff0c;传值的区…

PyQt ERROR:ModuleNotFoundError: No module named ‘numpy‘

ERROR:ModuleNotFoundError: No module named numpy Solution:打开cmd,输入指令下载numpy库 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy//或者尝试这个指令 pip install numpy

C++学习 const相关

&#x1f914; 今天回顾C 时候 发现遇到关于const的变量类型&#xff08;底层const 顶层const 常量指针 指针常量 常量引用…&#xff09;又有点懵懵的了&#xff0c;然后又仔细复盘了一下 最后整理了一下 也方便记忆 文章目录 引入顶层const和底层const顶层const底层const 总结…

[Windows CMD] 查看网络配置 ipconfig

ipconfig 是一个网络命令工具&#xff0c;用于显示所有适配器&#xff08;网络接口&#xff09;的 IPv4 和 IPv6 配置信息。这个命令在 Windows 操作系统中非常常用&#xff0c;也存在于其他一些基于 IP 的网络系统中&#xff0c;如 macOS 和 Linux&#xff08;在这些系统中通常…

自动曝光Flicker现象分析

1、sensor Flicker现象 相机输出画面会出现频闪&#xff0c;尤其是对着日光灯管场景&#xff0c;画面中有水波纹渐变或者阴影纹路&#xff0c;如下图所示。 所展示的现象为&#xff1a; 1、同一帧的不同行的亮度各不相同&#xff0c;存在亮暗变化的条纹&#xff1b; 2、不同…

睿抗题解集

睿抗 2023国赛RC-u1 睿抗,启动!RC-u2 桌游猜谜RC-u3 兰州拉面派餐系统RC-u4 拆积木RC-u5 栈与数组总结2023国赛 RC-u1 睿抗,启动! #include<bits/stdc++.h> using namespace std; const int N=1e6+10; char a[26],b[26]; string s;int change(int op,int idx){if(op…

Docker安装oracle19c

文章目录 Docker安装oracle19c1. 拉取镜像2. 创建目录并赋权3. 构建容器并启动4. 查看日志5. 登录docker容器里面6. 登录sqlplus 创建PDB用户7. 查看show pdbs7. 切换数据库8. 创建用户9. 授权10. 使用navicat连接11. 参考和感谢 Docker安装oracle19c 1. 拉取镜像 docker pul…