Maven项目管理-随笔(入门)

news2024/11/18 3:31:11

目录

前言

什么是Maven

Maven的优点

Maven的核心概念有哪些

POM是什么

什么是依赖管理

什么是插件

什么是仓库

概述

1、构建

2、依赖

安装与配置

1、下载

 2、Windows Maven安装

1)解压到指定目录

2)配置环境变量

3)目录结构

3、配置

1.根目录创建一个文件夹

2.settings.xml文件配置

3.settings.xml文件配置镜像仓库

常用命令

创建Maven项目

1、手工创建

1)Maven项目目录结构

2)pom.xml配置文件

3)说明

JUnit

1、概念

2、使用步骤

常用API

1)@Test注解

2)assertEquals()方法

3)assertTrue()和assertFalse()方法

4)assertNotNull()和assertNull()方法

5)@Before和@After注解

6)@BeforeClass和@AfterClass注解

7)@Ignore注解

Lombok

1、@Data注解

2、@AllArgsConstructor和@NoArgsConstructor注解

3、@Builder注解

总结


前言

Maven是一个开源的项目管理工具,它可以帮助开发人员自动化构建、测试和部署Java项目


什么是Maven

Maven是一个开源的项目管理工具,它可以帮助开发人员自动化构建、测试和部署Java项目。

  • 统一管理Jar包的工具(处理Jar包的依赖和冲突问题)
  • 方便编译和测试,打包代码的工具

Maven的优点

Maven可以自动化构建、测试和部署Java项目,减少了手动操作的时间和错误率。它还可以管理项目的依赖关系,避免了版本冲突和依赖缺失的问题。


Maven的核心概念有哪些

Maven的核心概念包括项目对象模型(POM)、依赖管理、插件、仓库和生命周期。


POM是什么

POM是项目对象模型,它是Maven项目的核心文件,包含了项目的基本信息、依赖关系、构建配置和插件等信息。

pom.xml 文件是Maven项目的核心文件(非常重要,Maven项目不能没有pom)

pom.xml 他是干嘛的呢?

  • 简单的来说,pom.xml就是对Moven项目的描述

什么是依赖管理

依赖管理是Maven的一个重要功能,它可以自动管理项目的依赖关系,包括下载、安装和更新依赖库;它提供了中央仓库,能帮我们自动下载构件。

搜索网址,各种依赖都在这个网址里,点击进入网址搜索自己所需的依赖(构建)如:servlet、jsp、test(Junit) 等.....:点击进入

这下面的是我常用的一些依赖

<!--依赖第三方配置-->
  <dependencies>
    <!-- 依赖 junit,jar包 便于test测试 -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13.2</version>
      <scope>test</scope>
    </dependency>

    <!-- 依赖 servlet,jar包 -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>

    <!-- 依赖 jsp,jar包 -->
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>javax.servlet.jsp-api</artifactId>
      <version>2.3.3</version>
      <scope>provided</scope>
    </dependency>


    <!--添加依赖Lombok 自动生成JavaBean 所需的 tos,hashCode等-->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.26</version>
      <scope>provided</scope>
    </dependency>


    <!-- 依赖jstl -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>


    <!-- 依赖 mysql,jar包 -->
    <dependency>
      <groupId>com.mysql</groupId>
      <artifactId>mysql-connector-j</artifactId>
      <version>8.0.33</version>
    </dependency>


    <!--依赖gson jar包 -->
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.10.1</version>
    </dependency>

  </dependencies>
  <!--忽略test测试 -->
<!--       <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
        </plugins>
    </build> -->

什么是插件

插件是Maven的一个扩展机制,它可以扩展Maven的功能,例如编译、测试、打包和部署等。


什么是仓库

仓库是Maven的一个重要概念,它是存储依赖库和插件库的地方,包括本地仓库和远程仓库。


概述

Maven 是 Apache 软件基金会组织维护的一款专门为 Java 项目提供构建依赖管理支持的工具。Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构件,报告和文档的软件项目管理工具。

1、构建

Maven是一个优秀的构建工具。 它能够帮我们自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。我们不需要也不应该一遍又一遍地输入命令,一次又一次地点击鼠标,我们要做的是使用Maven配置好项目,然后输入简单的命令(如:mvn clean install),Maven会帮我们处理那些烦琐的任务。

Java 项目开发过程中,构建指的是使用原材料生产产品的过程。

  • 原材料
    • Java 源代码
    • 基于 HTML 的 Thymeleaf 文件
    • 图片
    • 配置文件
  • 产品
    • 一个可以在服务器上运行的项目
  • 构建过程包含的主要的环节:
    • 清理:删除上一次构建的结果,为下一次构建做好准备
    • 编译:Java 源程序编译成 *.class 字节码文件
    • 测试:运行提前准备好的测试程序
    • 报告:针对刚才测试的结果生成一个全面的信息
    • 打包
      • Java工程:jar包
      • Web工程:war包
    • 安装:把一个 Maven 工程经过打包操作生成的 jar 包或 war 包存入 Maven 仓库
    • 部署
      • 部署 jar 包:把一个 jar 包部署到 Nexus 私服服务器上
      • 部署 war 包:借助相关 Maven 插件(例如 cargo),将 war 包部署到 Tomcat 服务器上
  • 脱离IDE环境构建项目


 

2、依赖

Maven还是一个依赖管理工具和项目信息管理工具。它提供了中央仓库,能帮我们自动下载构件。

如果 A 工程里面用到了 B 工程的类、接口、配置文件等等这样的资源,那么我们就可以说 A 依赖 B。例如:

  •  junit-4.12 依赖 hamcrest-core-1.3
  • thymeleaf-3.0.12.RELEASE 依赖 ognl-3.1.26
    • ognl-3.1.26 依赖 javassist-3.20.0-GA
  • thymeleaf-3.0.12.RELEASE 依赖 attoparser-2.0.5.RELEASE
  • thymeleaf-3.0.12.RELEASE 依赖 unbescape-1.1.6.RELEASE
  • thymeleaf-3.0.12.RELEASE 依赖 slf4j-api-1.7.26

依赖管理中要解决的具体问题:

  • jar 包的下载:使用 Maven 之后,jar 包会从规范的远程仓库下载到本地
  • jar 包之间的依赖:通过依赖的传递性自动完成
  • jar 包之间的冲突:通过对依赖的配置进行调整,让某些jar包不会被导入

安装与配置

1、下载

下载Maven地址:点击进入

 2、Windows Maven安装

1)解压到指定目录

注意:

  • Maven依赖于Java,因此必须保证已经安装JDK,并配置好环境变量
  • 路径不要存在中文或空格

2)配置环境变量

注意:

  • MAVEN_HOME或M2_HOME:指定Maven根目录
  • Path:指定Maven相关的命令程序所在的bin目录
  • MAVEN_HOME:D:\java\Maven\apache-maven-3.9.1-bin\apache-maven-3.9.1
  • Path:%MAVEN_HOME%\bin

我以前配置过的,我就不重新配置了,那么我把配置步骤给大家展示出来!大家跟着步骤配置,就不会有什么问题的!

 

配置好之后试一下

$ mvn -v

测试通过如图

2.1) 注意如果是Linux或Mac系统

要编辑用户目录下的.bash_profile文件

# 编辑用户目录下的.bash_profile文件

# 编辑用户目录下的.bash_profile文件
$ vim .bash_profile

########### Maven1.0 Evn ##################
# export MAVEN_HOME=/Users/circleus/apache-maven-3.5.4
# export MAVEN_HOME=/Users/circleus/aliyun-maven-3.6.0
# export PATH=$MAVEN_HOME/bin:$PATH
 
########### Maven2.0 Evn ##################
# export M2_HOME=/Users/circleus/aliyun-maven-3.6.0
# export M2_HOME=/Users/circleus/apache-maven-3.5.4
# export PATH=$PATH:$M2_HOME/bin
 
########### Maven3.0 Evn ##################
# export PATH=/Users/circleus/aliyun-maven-3.6.0/bin:$PATH

3)目录结构

  • bin目录:包含mvn的运行脚本
  • boot目录:包含一个类加载器的框架,maven使用它加载自己的类库
  • conf目录:存放配置文件的目录(核心配置文件settings.xml文件)
  • lib目录:包含maven运行时的依赖类库

3、配置

1.根目录创建一个文件夹

路径:D:\java\Maven\apache-maven-3.9.1-bin

创建:LocalAddress 文件夹

首先自己创建一个文件夹如:创建一个LocalAddress 文件夹

文件夹的命名是随意的,建议命名有意义的!!

2.settings.xml文件配置

路径:D:\java\Maven\apache-maven-3.9.1-bin\apache-maven-3.9.1\conf

配置:settings.xml文件

配置本地仓库

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

<localRepository> D:\java\Maven\apache-maven-3.9.1-bin\LocalAddress</localRepository>

看图:

3.settings.xml文件配置镜像仓库

<!--阿里云Maven镜像配置--> 
<mirror>
  <id>nexus-aliyun</id>
  <mirrorOf>*</mirrorOf>
  <name>Nexus aliyun.</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

 注意:打开settings.xml,Ctrl+F搜索 http://0.0.0.0/ 跳到 mirrors

<mirrors>

        在这里面配置阿里云镜像

</mirrors>

安装与配置差不多已经完成了,最后一步就是把settings.xml文件复制粘贴到LocalAddress 文件夹中

注意: 由于我以前配置好了,所以里面才存放了那么多文件,刚刚配置的时候是没有那么多的


常用命令

查看maven版本

mvn -v 

编译

mvn compile

打包

mvn package

测试

mvn test

清除target

mvn clean

安装jar包到本地仓库中

mvn install


创建Maven项目

1、手工创建

1)Maven项目目录结构

  • 项目名称
    • src:项目源码
      • main:存放主程序
        • java:存放Java源码
          • 包名+类名
        • resoures:存放资源文件
        • webapp:web资源
      • test:存放测试程序
        • java:存放Java测试源码
          • 包名+类名
        • resources:存放资源文件
    • target:此目录由maven生成
    • pom.xml:Maven项目核心配置文件

2)pom.xml配置文件

在Maven中,<packaging>元素可以指定不同的打包类型。除了"jar"之外,常见的打包类型还包括:

  1. JAR(Java Archive):用于打包Java类文件和相关资源。
  2. WAR(Web Application Archive):用于打包Java Web应用程序,包含Java类文件、Web资源和部署描述符。
  3. EAR(Enterprise Application Archive):用于打包企业级Java应用程序,包含WAR文件和其他组件(如EJB模块)以及部署描述符。
  4. POM(Project Object Model):用于聚合多个子项目的父项目,本身不会生成任何实际的构建产物。

除了这些常见的打包类型,Maven还支持其他特殊的打包类型,如RAR(Resource Adapter Archive)和BUNDLE(OSGi Bundle)等,用于特定的应用场景。可以根据具体需求选择适当的打包类型来构建项目。

封装成jar包

<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>

  <!-- 项目坐标:GAV    jar  坐标便于被别人使用,便于管理-->
  <groupId>edu.nf</groupId><!--包名-->
  <artifactId>demo</artifactId><!--项目名 模板-->
  <version>1.0-SNAPSHOT</version><!--指定版本-->
  <packaging>jar</packaging><!--封装成jar包-->

  <name>ums</name>
  <url>http://maven.apache.org</url>

 <!--配置相关的属性-->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

<!--依赖第三方配置-->
 <dependencies>
 <!--添加依赖 junit构件 方便测试-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
        <scope>test</scope>
    </dependency>

<!--添加依赖 servlet-API  为什么要添加servlet依赖:因为运行servlet需要用到jar包,而这个servlet依赖可以帮助下载需要到的jar包-->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
   </dependency>

</dependencies>
</project>

封装成war包

<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>

  <!-- 项目坐标:GAV    jar  坐标便于被别人使用,便于管理-->
  <groupId>edu.nf</groupId>
  <artifactId>demo</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>ums</name>
  <url>http://maven.apache.org</url>

 <!--配置相关的属性-->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

<!--依赖第三方配置-->
 <dependencies>
 <!--添加依赖 junit构件 方便测试-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
        <scope>test</scope>
    </dependency>

<!--添加依赖 servlet-API  为什么要添加servlet依赖:因为运行servlet需要用到jar包,而这个servlet依赖可以帮助下载需要到的jar包-->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
   </dependency>

</dependencies>
</project>

附上视频

纯手动创建一个Maven项目

3)说明

  • 项目坐标
    • groupId:包名(公司或组件域名倒序).项目名
    • artifactId:项目名-模块名
    • version:指定版本
  • dependencies:依赖列表,指定本项目所依赖的第三方工具(构件/jar)
  • archetype插件——自动创建符合maven规定的目录骨架
    • 方法一:mvn archetype:generate
    • 第一次构建需要连接网络,从官网下载相关的插件
    • 可以配置国内镜像解决

JUnit

1、概念

JUnit是一个用于Java编程语言的测试框架,可以帮助开发人员编写自动化的单元测试和集成测试。

2、使用步骤

第一:在项目中添加JUnit依赖(在pom.xml配置Junit依赖)

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

第二:创建一个测试类,该类应该包含一些测试方法。在测试类中使用@Test注解 来标识测试方法。 在 java里 assertEquals这个的意思是表示比较实际值和期望值是否相等

package com.maven.demo ;
import org.junit.* ;
import org.junit.Assert.* ;

public class UserTest {
	@Test
	public void testHello() {
    	// 断言验证测试结果是否符合预期
			Assert.assertEquals("hello",new User().sayHello()) ;
	}
}

第三:在测试方法中编写测试代码。可以使用断言来验证测试结果是否符合预期。例如,使用assertEquals()方法来比较实际值和期望值。

第四:运行测试。可以使用IDE工具来运行测试,也可以使用Maven或Gradle等构建工具来运行测试。测试运行后,将会显示测试结果和测试覆盖率等相关信息。


常用API

1)@Test注解

用于标识一个测试方法。例如:

@Test
public void testAddition() {
    int result = Calculator.add(2, 3);
    assertEquals(5, result);
}

2)assertEquals()方法

用于比较实际值和期望值是否相等。例如:

int result = Calculator.add(2, 3);
assertEquals(5, result);

3)assertTrue()和assertFalse()方法

用于验证一个条件是否为真或为假。例如:

boolean flag = Calculator.isPositive(5);
assertTrue(flag);

flag = Calculator.isPositive(-5);
assertFalse(flag);

4)assertNotNull()和assertNull()方法

用于验证对象是否为空或不为空。例如:

String str = Calculator.getString();
assertNotNull(str);

str = null;
assertNull(str);

5)@Before和@After注解

用于标识测试方法之前和之后要执行的方法。例如:

@Before
public void setUp() {
    Stystem.out.println("我先测试的")
}

@After
public void tearDown() {
       Stystem.out.println("我最后测试")
}

public void tes(){
    System.out.println("测试中...")
}

6)@BeforeClass和@AfterClass注解

用于标识所有测试方法之前和之后要执行的方法。例如:

@BeforeClass
public static void setUpClass() {
    // 初始化测试数据
}

@AfterClass
public static void tearDownClass() {
    // 清理测试数据
}
@BeforeClass
public static void setUpClass() {
    // 初始化测试数据
}

@AfterClass
public static void tearDownClass() {
    // 清理测试数据
}

7)@Ignore注解

用于标识某个测试方法需要被忽略。例如:

@Ignore("这个测试方法还没准备好")
@Test
public void testSomething() {
    // 测试代码
}

Lombok

依赖包

<!--添加依赖Lombok 自动生成JavaBean 所需的 tos,hashCode等-->
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.26</version>
  <scope>provided</scope>
</dependency>

Lombok是一个Java库,它可以通过注解自动化Java类的样板代码,从而简化开发人员的编程任务。

1、@Data注解

使用@Data注解可以自动生成JavaBean所需的getter、setter、toString、equals和hashCode方法。

@Data
public class Person {
    private String name;
    private int age;
}

2、@AllArgsConstructor和@NoArgsConstructor注解

使用@AllArgsConstructor和@NoArgsConstructor注解可以自动生成有参构造函数和无参构造函数。

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
    private String name;
    private int age;
}

3、@Builder注解

使用@Builder注解可以自动生成Builder模式所需的代码,可以方便地创建复杂对象。

@Data
@Builder
public class Person {
    private String name;
    private int age;
    private String address;
}

Person person = Person.builder()
        .name("张三")
        .age(20)
        .address("北京市")
        .build();

总结

好了,费了好大的劲,终于写好了,希望多多支持,有什么不对的地方请多多指出!

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

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

相关文章

离散数学题目收集整理练习(期末过关进度60%)

✨博主&#xff1a;命运之光 &#x1f984;专栏&#xff1a;离散数学考前复习&#xff08;知识点题&#xff09; &#x1f353;专栏&#xff1a;概率论期末速成&#xff08;一套卷&#xff09; &#x1f433;专栏&#xff1a;数字电路考前复习 ✨博主的其他文章&#xff1a;点击…

基于ssm框架的数字化题库与在线考试系统设计与实现+第二稿+文档

博主介绍&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 项目名称 基于ssm框架的数字化题库与在线考试系统设计与实现第二稿文档 视频演示 视频去哪了呢&#xff1f;_哔哩哔哩_bilibili 系统介绍 摘 要 随着科学技术…

iOS游戏反外挂方案解析

自2007年iPhone OS发布以来&#xff0c;iOS系统已经发展了近17年&#xff0c;凭借着独家的系统环境、安全性更高的闭源生态等优势。iOS从一众手机系统中脱颖而出&#xff0c;与安卓稳坐手机系统市场两把头部交椅。 不同于安卓的开源生态&#xff0c;iOS的闭源生态中的硬件、软…

【计算机网络自顶向下】如何学好计网-第五章数据链路层

第五章 数据链路层 学习目的 目的1&#xff1a;理解链路层服务的主要功能 差错检查、纠错 共享广播信道&#xff1a;多点接入问题(multiple access) 链路层寻址(link layer addressing) 局域网技术&#xff1a;Ethernet, VLANs 目的2&#xff1a;链路层技术的实现 点到点…

Vue介绍与入门(一)

文章目录 前言一、Vue.js是什么&#xff1f;二、vue入门1. 引入vue.js2. 编写入门的简易代码&#xff08;实践&#xff09; 三、vue学习总结&#xff08;重点&#xff09; 前言 前端开发三大框架 1、Vue&#xff1a;尤雨溪主导开发 2、React&#xff1a;脸书&#xff08;Faceb…

MySQL 02:常用数据类型

<~生~信~交~流~与~合~作~请~关~注~公~众~号生信探索> 主要的数据类型&#xff0c;包括字符串、数值、日期时间 数值型 INT就是整数类型&#xff0c;根据允许的数值大小分为以下类型&#xff08;由小到大&#xff09;&#xff0c;这样做的目的是节约空间 INT类型范围&…

【Vscode 远程连接 Docker 容器】

文章目录 1. 配置docker镜像2. 安装 OpenSSH3. Vscode中安装 Remote-SSH 插件&#xff1a;4. 配置连接信息 1. 配置docker镜像 在主机目录下创建一个 Dockerfile&#xff0c;注意文件名必须保持一致&#xff01;&#xff01;&#xff01;&#xff08;默认装了docker&#xff09…

从零开始了解Redis 主从复制全部流程

主从复制 主从复制介绍 分析单个Redis 的问题 在一个项目中读的操作是比写的操作要多的 像京东&#xff0c;淘宝等等同一时刻看的人是远远多于买的人的所有单个redis既要承担写的操作又要承担读的操作效率低在高并发的情况下不稳定 所以引出了主从复制 一图胜千言 Redis …

数据库入门下篇(如何安装和登录MYSQL数据库)

在这篇文章里&#xff0c;笔者将着重讲解如何在win和Linux系统上安装自己的MySQL数据库软件&#xff0c;以及安装好数据库软件后如何启动和登录&#xff0c;忘了密码怎么办&#xff1f;如何创建一个数据库&#xff0c;如何在数据库中创建一个表等内容 目录 在windows系统上安装…

宠物行业 | 活动落地页设计指南基础版

中国是全球第二大宠物市场&#xff0c;同时也是增长最快的市场之一。随着养宠人群的扩大&#xff0c;人宠亲情关系的加深&#xff0c;客群消费意愿与消费水平的提高&#xff0c;中国宠物行业正处于消费与认知的全面升级期。 调研显示&#xff0c;2022年我国宠物产业规模达4936亿…

管理类联考——英语二——技巧篇——写作——图表作文——经典方法论

考研英语(二)的B节写作主要考查的是图表作文。笔者根据考研英源(二)大纲要求以及议论文经典的三段式写法(首段指出问题、中间段分析问题、尾段解决问题)&#xff0c;研发出一套图表作文的经典写法。下面我们来看图表作文经典的三段式写法的基本大招。 从上图可以看出&#xf…

【SpringCloud入门】-- Nacos快速入门之搭建服务与注册中心

目录 前言&#xff1a; 1.Nacos的下载与安装 2. 去MySQL建立一个名为nacos的数据库 3.介绍配置文件&#xff0c;conf目录下的 application.properties 4.nacos启动 5. nacos作为注册中心的作用 6.建立一个项目&#xff0c;实现向命名空间注册 前言&#xff1a; 上文我们已…

使用influxQL 查询influxDB 2.0以上版本

使用grafana 9.0 连接influxdb 2.0 时候,只能用FLux语言连接,就没有SQL编辑面板,通过研究搞定了,先看效果。 influxQL 格式连接 influxdb2.0 无法连接,总数报错 bad request. 那就用FLux格式连接,连接成功后,查询的地方没有可视化面板,只有编写脚本的地方,很不方便…

Android11 DNS解析流程

Android11 DNS解析 1. DNS解析概念 ​ DNS的全称是domain name system&#xff0c;即域名系统。主要目的是将域名解析为IP地址&#xff0c;域名是方便用户记忆&#xff0c;但网络传输中源目地址使用IP地址来进行标识的&#xff0c;所以Android中的网络应用程序在发起http请求…

MySQL redo log

redo log介绍 重做日志&#xff0c;用于记录事务操作的变化&#xff0c;确保事务的持久性。redo log是在事务开始后&#xff08;begin; 之后&#xff09;就开始记录&#xff0c;不管事务是否提交都会记录下来&#xff0c;在异常发生时&#xff08;如数据持久化过程中掉电&…

如何在 Vue3 组件中使用 TS 类型(必看)

一、为 props 标注类型 使用 <script setup> 方式一&#xff1a;当使用 <script setup> 时&#xff0c;defineProps() 宏函数支持从它的参数中推导类型&#xff1a; const props defineProps({treeTableProps: {type: Array,default: null,required: false},ms…

华为OD机试真题 JavaScript 实现【玩牌高手】【2023 B卷 100分】,附详细解题思路

一、题目描述 给定一个长度为n的整型数组&#xff0c;表示一个选手在n轮内可选择的牌面分数。 选手基于规则选牌。 请计算所有轮结束后其可以获得的最高总分数。 选择规则如下&#xff1a; 在每轮里选手可以选择获取该轮牌面&#xff0c;则其总分数加上该轮牌面分数&#…

✎Qt-doc——尺寸调整策略(QSizePolicy)

目录 QSizePolicy类详述成员类型文档 QSizePolicy类详述 小部件的尺寸策略是其愿意以各种方式调整大小的表达方式&#xff0c;并影响布局引擎对小部件的处理方式。每个小部件返回一个描述其在布局时首选的水平和垂直调整策略的QSizePolicy。您可以通过更改其QWidget::sizePoli…

SpringCloud:分布式事务Seata事务模式

Seata会有 4 种分布式事务解决方案&#xff0c;分别是AT模式、TCC模式、Saga模式和XA模式。 1.AT 模式 2019 年 1 月份&#xff0c;Seata开源了AT模式。AT模式是一种无侵入的分布式事务解决方案。在AT模式下&#xff0c;用户只需关注自己的业务SQL&#xff0c;用户的 业务SQL …

2023-06-16 Android app 使用opencv 调用jni在图片上添加文字,对图片进行模糊处理,源码实例学习。

一、要理解还是得自己看代码 1.1 完整的测试代码路径如下 https://download.csdn.net/download/qq_37858386/87916944 1.2 代码架构 1.3 app 运行效果 二、android studio 添加 opencv module可以参考下面的文章&#xff0c;比较详细。 Android OpenCV 入门教程笔记&#x…