maven的settings.xml、pom.xml配置文件

1、配置文件

maven的配置文件主要有 settings.xml 和pom.xml 两个文件。

其中在maven安装目录下的settings.xml,如:D:\Program Files\apache-maven-3.6.3\conf\settings.xml 是全局配置文件

用户目录的.m2子目录下的settings.xml,如:C:\Users\chenxc.m2\settings.xml 配置只是针对当前用户的配置文件。

项目根路径下的pom.xml主要是对当前项目的配置。

局部配置优先于全局配置。 配置优先级从高到低:pom.xml> user settings > global settings

2、settings.xml 配置详解

2.1、localRepository 本地仓库配置

        该值是此构建系统的本地存储库的路径。默认值为 ${user.home}/.m2/repository。此元素对于主构建服务器特别有用,允许所有登录用户从公共本地存储库进行构建。

<localRepository>D:\repository</localRepository>

 2.2、interactiveMode  用户输入配置

     interactiveMode元素用于配置Maven是否在需要用户输入时进入交互模式。默认情况下,Maven设置为true,这意味着它会在需要输入时提示用户。

        如果你想要Maven在需要输入时总是自动做出决定或者永远不要提示用户,你可以将interactiveMode设置为false。

<interactiveMode>true</interactiveMode>

2.3、offline 离线模式

        表示此构建系统是否应在离线模式下运行,则默认为false。 此元素对于由于网络设置或安全原因而无法连接到远程存储库的构建服务器非常有用。

<offline>false</offline>

2.4、pluginGroups 插件组

        插件组,该元素包含一个元素列表pluginGroup,每个元素包含一个groupId。当使用插件且命令行中未提供 groupId 时,将搜索该列表。该列表默认包含 org.apache.maven.plugins和org.codehaus.mojo。

<pluginGroups><pluginGroup>org.eclipse.jetty</pluginGroup>
</pluginGroups>

如下,在pom文件中没有设置<groupId>,那么将会从<pluginGroups>列表中指定的位置搜索插件

<!-- 打包跳过测试 -->
<plugin><!-- <groupId>org.apache.maven.plugins</groupId> --><artifactId>maven-surefire-plugin</artifactId><configuration><skipTests>true</skipTests></configuration>
</plugin>

2.5、servers 私服服务器配置

        私服服务器配置,配置私服的用户名和密码。配置的私服服务器可以用来发布jar包,与pom 中 distributionManagement 标签中配置的仓库ID相互对应。

<servers><server><id>server001</id><username>my_login</username><password>my_password</password><privateKey>${user.home}/.ssh/id_dsa</privateKey><passphrase>some_passphrase</passphrase><!--文件被创建时的权限。 --><filePermissions>664</filePermissions><!--目录被创建时的权限。 --><directoryPermissions>775</directoryPermissions><configuration></configuration></server>
</servers>
  • id :该id与<distributionManagement>中<repository>元素的<id>相匹配(注意不是用户登陆的id)。

        如下,在pom文件中设置的<distributionManagement>中<repository>元素的<id>要与settings.xml文件中<server>的<id>值一致才能匹配的上。 

<distributionManagement><repository><id>server001</id><url>http://url:端口/repository/maven/</url></repository>
</distributionManagement>
  • username、password:这两元素以一对形式出现,表示向该服务器进行身份验证所需的登录名和密码。
  • privateKey、passphrase:与前两个元素一样,指定了一个私钥位置(默认是${user.home}/.ssh/id_dsa)以及私钥密码(私钥密码可以没有)。将来<passphrase>和<password>元素可能会被提取到外部,但目前它们必须在settings.xml文件以纯文本的形式声明。
  • filePermissions、DirectoryPermissions:在部署时创建存储库文件或目录时,这些是要使用的权限。每个的合法值都是与 unix 文件权限相对应的三位数,例如 664 或 775。

注意:如果您使用私钥<privateKey>登录服务器,请确保没有填写<password>元素。否则<privateKey>将被忽略。

2.6、mirrors 镜像配置

<mirrors><mirror><id>planetmirror.com</id><name>PlanetMirror Australia</name><url>http://downloads.planetmirror.com/pub/maven2</url><mirrorOf>central</mirrorOf></mirror>
</mirrors>
  •  id , name:此镜像的唯一标识、定义一个容易看懂的名称。id用于区分镜像元素,并在连接到镜像时从<servers>部分选择相应的凭据。
  • url :该镜像的基本 URL。当Maven在建立系统的时候就会使用这个url来连接到我们的远程仓库。
  • mirrorOf:用来表示该mirror是关联的哪一个仓库,其值为其关联仓库的id。例如,要指向 Mavencentral存储库 ( https://repo.maven.apache.org/maven2/) 的镜像,请将此元素设置为 central。更高级的映射如下:
    • 当要同时关联多个仓库时,多个仓库之间可以用逗号隔开;
    • 当要关联所有的仓库时,可以使用“*”表示;
    • 当要关联除某一个仓库以外的其他所有仓库时,可以表示为“ ,!repositoryId”;
    • 当要关联不是localhost或用file请求的仓库时,可以表示为“external:”。

2.7、proxies 代理设置

        代理设置,内部由n个proxy节点组成,表示Maven在进行联网时需要使用到的代理。
部分公司出于安全考虑会需要员工通过代理才可上网,这时,就需配置该节点的参数了。

<proxies><proxy><id>myproxy</id><active>true</active><protocol>http</protocol><host>proxy.somewhere.com</host><port>8080</port><username>proxyuser</username><password>somepassword</password><nonProxyHosts>*.google.com|ibiblio.org</nonProxyHosts></proxy>
</proxies>
  • id:唯一标识符;
  • active:是否被激活使用,默认为true。当有多个proxy节点存在时,用于选择使用哪个代理,但同一时间仅有一个代理会被被激活;
  • protocol:协议类型;
  • username:用户名,没有可不填
  • password:密码,没有可不填
  • host:IP地址
  • port:端口号
  • nonProxyHosts:不使用代理的地址

以上参数在通常配置代理的情况都会使用到,最终的代理地址为 protocol://host:port

2.8、profiles 个性配置

        个性配置,内部由n个profile节点组成。setting.xml文件中的<profile>是pom中的<profile>的其中一部分,<profile>里包含<activation>、 <repositories>、<pluginRepositories>、<properties>这四个主要元素。因为它们关注的是整个构建系统(这就是settings.xml文件的作用),而不是单个项目对象模型设置。如果一个settings.xml中的<profile>被激活,它的值会覆盖任何其它定义在pom中带有相同id的<profile>。

<profiles><profile><id>test</id>...</profile>
</profiles>

参数说明:

  • id:唯一标识符
  • activation:激活条件。
  • properties:用于定义属性键值对的。
  • repositories:远程仓库列表。
  • pluginRepositories:插件仓库。

2.8.1、activation 激活条件

        <activation>是用来确定该<profile>是否被激活使用,当<profile>被激活的时候, <repositories>、<pluginRepositories>、<properties>这三个元素里的配置才生效。所以<activation>这个元素要至少要和其他三个元素之一同时使用才有意义。

<profiles><profile><id>test</id><activation><activeByDefault>false</activeByDefault><jdk>1.5</jdk><os><name>Windows XP</name><family>Windows</family><arch>x86</arch><version>5.1.2600</version></os><property><name>mavenVersion</name><value>2.0.3</value></property><file><exists>${basedir}/file2.properties</exists><missing>${basedir}/file1.properties</missing></file></activation>...</profile>
</profiles>
  • activeByDefault:<profile>默认是否激活的标识。
  • jdk :当运行的java程序的jdk的版本与指定的版本匹配时<profile>将被激活。如:上面的例子中,当运行的java程序的jdk版本为1.5.0_06时<profile>将被激活。jdk的版本还支持范围配。 有关支持范围匹配的更多详细信息,请参阅 maven-enforcer-plugin 。
  • os:该os元素可以定义上面所示的一些操作系统特定属性。 当满足条件时<profile>将被激活。
    • name:操作系统的名字匹配则激活该<profile>。
    • family:操作系统所属家族则激活该<profile>。
    • arch:操作系统体系结构则激活该<profile>。
    • version:操作系统版本则激活该<profile>。
  • property:如果Maven检测到对应的name=value对的属性(其值可以在pom中通过${name}引用),则<profile>将激活。如果值字段是空的,那么存在属性名称字段就会激活profile,如:上面例子中如果存在mavenVersion=2.0.3,那么<profile>将激活。
  • file:通过给定的文件存在或丢失来激活<profile>
    • exists:如果指定的文件存在,则激活<profile>。
    • missing:如果指定的文件不存在,则激活<profile>。

        注意:这多个激活条件的关系是这样的:Maven 3.2.2之前是只要满足其中之一就可以激活该<profile>,Maven 3.2.2之后是满足所有才可以激活该<profile>。

2.8.2、properties 扩展属性列表 

        对应<profile>的扩展属性列表。可以用来存放一些值。这些值可以在pom文件中的任何地方使用标记${X}来使用,这里X是指属性的名称(如下例中的${user.install})。

<profiles><profile>...<properties><user.install>${user.home}/our-project</user.install></properties>...</profile>
</profiles>

属性的值有五种不同的形式:

  • env.X : 在一个变量前加上"env."的前缀,会返回一个shell环境变量。例如:env.PATH指代了$path环境变量(在Windows上是%PATH%)。
  • project.x :指代了pom中对应的元素值。例如: <project><version>1.0</version></project>通过${project.version}获得version的值。
  • settings.x : 指代了settings.xml中对应元素的值。例如:<settings><offline>false</offline></settings>通过${settings.offline}获得<offline>的值。
  • java系统属性 : 所有可通过java.lang.System.getProperties()获取的属性都能在pom中使用该形式获取,例如 ${java.home}。
  • : 在<properties/>元素中,或者外部文件中设置,以${someVar}的形式使用。

        如果我们想在application.peoperties文件中引用这个user.install属性,这里注意引用时要用占位符

user.install=@user.install@

在springboot工程中只能使用@xxx@(xxx为自定义的属性名)

2.8.3、repositories 远程仓库列表

远程仓库列表,它是Maven用来填充构建系统本地仓库所使用的一组远程仓库列表。

<profiles><profile>...<repositories><repository><id>codehausSnapshots</id><name>Codehaus Snapshots</name><releases><enabled>false</enabled><updatePolicy>always</updatePolicy><checksumPolicy>warn</checksumPolicy></releases><snapshots><enabled>true</enabled><updatePolicy>never</updatePolicy><checksumPolicy>fail</checksumPolicy></snapshots><url>http://snapshots.maven.codehaus.org/maven2</url><layout>default</layout></repository></repositories>...</profile></profiles>
  • id、name:远程仓库唯一标识和远程仓库名称;
  • releases、snapshots:如何处理远程仓库里发布版本(releases)和快照版本(snapshots)的下载
    • enabled:true或者false表示该仓库是否开启下载某种类型构件(发布版,快照版)。
    • updatePolicy:该元素指定更新发生的频率。Maven会比较本地pom 和远程pom 的时间戳。这里的选项是:always(一直),daily(默认,每日),interval:X(这里X是以分钟为单位的时间间隔),或者never(从不)。
    • checksumPolicy:当Maven验证构件校验文件失败时该怎么做-ignore(忽略),fail(失败),或者warn(警告)。
  • layout:在上面对存储库的描述中,提到它们都遵循通用布局。这基本上是正确的。Maven 2 的存储库有一个默认布局;然而,Maven 1.x 有不同的布局。使用此元素指定是default(默认)还是legacy(遗留)。

2.8.4、pluginRepositories 插件仓库

        在Maven中有两种类型的仓库,一种是存储工件的仓库,另一种就是存储plugin插件的仓库。pluginRepositories的定义和repositories的定义类似,它表示Maven在哪些地方可以找到所需要的插件。

<profiles><profile>...<pluginRepositories><pluginRepository><id>myPluginRepo</id><name>My Plugins repo</name><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots><url>https://maven-central-eu....com/maven2/</url></pluginRepository></pluginRepositories>...</profile></profiles>

2.9、activeProfiles  激活的profile

        它包含一组<activeProfile>元素,每个元素的值都是一个<profile>中<id>里的值。无论任何环境设置如何,<activeProfile>定义的任何<profile>都将处于活动状态。如果没有找到匹配的配置文件,则不会发生任何事情。和<activation> 配置相比 <activeProfiles> 配置比较简单,也比较常用。

<activeProfiles><activeProfile>env-test</activeProfile>
</activeProfiles>

3、pom.xml配置文件

<parent><!--父项目的构件标识符 --><artifactId /><!--父项目的唯一标识符 --><groupId /><!--父项目的版本 --><version /><!-- 父项目的pom.xml文件的相对路径。默认值是../pom.xml。Maven首先在构建当前项目的地方寻找父项目的pom,其次在文件系统的这个位置(relativePath位置),然后在本地仓库,最后在远程仓库寻找父项目的pom。 注意:如果在父项目中通过<modules>指定了子模块,且子模块在父项目目录下,则不需要指定此配置。如果子项目不在父项目的目录下,应该指定此配置。--><relativePath>../pom.xml</relativePath>
</parent><!-- 模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司或者组织的唯一标志-->
<groupId>com.companyname.project-group</groupId>
<!-- 项目的唯一ID->
<artifactId>project</artifactId>
<!-- 版本号 -->
<version>1.0</version><!--项目产生的构件类型,例如jar、war、ear、pom -->
<packaging>jar</packaging><!-- 属性配置 -->
<properties><!-- 编译时的编码 --><maven.compiler.encoding>UTF-8</maven.compiler.encoding><spring-boot.version>2.3.7.RELEASE</spring-boot.version>
</properties>
<!-- 依赖配置 -->
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>${spring-boot.version}</version><scope>compile</scope></dependency>
</dependencies>
<!-- 依赖声明,不会真正引入包。一般在父pom中进行声明,在子pom中真正引入 -->
<dependencyManagement><dependencies><!-- import 依赖范围使用要求: 1、打包类型必须是pom; 2、必须放在 dependencyManagement 中 --><!-- 以下示例:在项目中引入 SpringBoot、SpringCloud 依赖 --><!-- SpringCloud 微服务 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency>  <!-- SpringCloud Alibaba 微服务 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency><!-- runtime专门用于编译时不需要,但是运行时需要的jar包。比如:编译时我们根据接口调用方法,但是实际运行时需要的是接口的实现类。典型案例是: --><!--热部署 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-core</artifactId><version>${hutool.version}</version></dependency></dependencies>
</dependencyManagement>     <!-- 编译构建相关配置 -->
<build><!-- 插件申明,一般在父pom中声明,在子pom中真正引入 --><pluginManagement><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version></plugin></plugins></pluginManagement><!-- 插件引入,在父pom中引入以后,所有子pom中都会引入 --><plugins><plugin><groupId>org.sonarsource.scanner.maven</groupId><artifactId>sonar-maven-plugin</artifactId><version>3.6.0.1398</version></plugin></plugins>
</build>       <!-- 针对当前项目的远程仓库配置 -->
<repositories><repository><id>aliyun-public</id><url>https://maven.aliyun.com/repository/public</url><snapshots><enabled>false</enabled></snapshots><releases><enabled>true</enabled></releases></repository>
</repositories>
<!-- 针对当前项目的远程插件仓库配置 -->
<pluginRepositories><pluginRepository><id>aliyun-public</id><url>https://maven.aliyun.com/repository/public</url><snapshots><enabled>false</enabled></snapshots><releases><enabled>true</enabled></releases></pluginRepository>
</pluginRepositories><!--jar包发布私服配置-->
<distributionManagement><!--发布版本--><repository><!-- 此ID和setting.xml 中server中配置的服务器进行对应 --><id>maven-releases</id><name>releases</name><url>http://nexus.maven.cn/repository/maven-releases/</url><uniqueVersion>true</uniqueVersion></repository><!--快照版本--><snapshotRepository><id>maven-snapshots</id><name>snapshots</name><url>http://nexus.maven.cn/repository/maven-snapshots/</url></snapshotRepository>
</distributionManagement><!--动态构建配置,通过设置活动的profile,profile中的配置会作用于当前的项目编译构建 -->
<profiles><profile><id>dev</id><properties><spring.profiles.active>dev</spring.profiles.active></properties><activation><activeByDefault>true</activeByDefault></activation></profile><profile><id>prod</id><properties><spring.profiles.active>prod</spring.profiles.active></properties></profile>
</profiles>

4、远程仓库的加载

  1.  maven仓库依赖下载顺序:
  2. 在settings.xml文件中配置的本地仓库中寻找依赖,没找到则进入第2步。
  3. 在settings.xml文件中配置的全局远程仓库中寻找,没找到则进入第3步。
  4. 在当前项目的pom.xml中配置的远程仓库中寻找,如果没找到则进入第4步。
  5. 在中央仓库 https://repo.maven.apache.org/maven2 中寻找,如果没找到则抛出依赖无法加载异常。

镜像替换:

  1. 如果在找寻的过程中,如果发现该仓库有镜像匹配,则直接从镜像仓库中加载。
  2. 如果仓库的 id 设置成 <mirrorOf>central</mirrorOf>,则会覆盖 maven 的中央仓库配置。
  3. 如果镜像 ID 设置为 <mirrorOf>*</mirrorOf> 表示匹配所有的仓库,则所有依赖只从此镜像仓库中下载。
  4. 如果镜像ID 设置为 <mirrorOf>repo1,repo2</mirrorOf>,则匹配仓库repo1和repo2,使用逗号分隔多个远程仓库
  5. 如果镜像ID设置为 <mirrorOf>*,!repo1</miiroOf>匹配所有远程仓库,repo1除外,使用感叹号将仓库从匹配中排除

         建议将镜像地址作为一个 普通仓库repository 进行配置,这样可以在其他 仓库下载不了的情况下查找到此仓库。如果配置了镜像仓库代替其他仓库容易出现在镜像中找不到依赖,导致项目无法编译的问题。

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

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

相关文章

【Livox激光MID-360】调试记录

官方git安装Livox-SDK2和ROS Driver 2。 修改驱动的雷达ip 打开ROS Driver2工程&#xff0c;修改livox_ros_driver2/config/MID360_config.json文件内的参数中ip部分&#xff0c;cmd_data_ip改为192.168.1.50&#xff0c;下面的ip改为雷达的ip&#xff0c;192.168.1.1** 最后…

微服务12要素

"微服务12要素"是一组指导原则&#xff0c;旨在帮助组织设计、构建和部署微服务架构。这些原则由Martin Fowler和James Lewis在他们的文章中提出&#xff0c;以帮助开发人员更好地理解和应用微服务架构。 以下是这12个要素的简要概述&#xff1a; 基于业务能力组织…

番茄 abogus rpc调用

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01;wx a15018601872 本文章…

如何将h5网页打包成iOS苹果IPA文件

哈喽&#xff0c;大家好呀&#xff0c;淼淼又来和大家见面啦&#xff0c;最近有很多小伙伴都被难住了&#xff0c;是什么问题给他们都难住了呢&#xff0c;许多小伙伴都说想要把h5网页打包成iOS苹果IPA文件&#xff0c;但是却不知道具体怎么操作&#xff0c;是怎么样的一个流程…

探秘大模型:《提示工程:技巧、方法与行业应用》背后的故事

提示工程是一种新兴的利用人工智能的技术&#xff0c;它通过设计提示引导生成式 AI 模型产生预期的输出&#xff0c;来提升人与 AI 的互动质量&#xff0c;激发 AI 模型的潜力&#xff0c;提升AI的应用水平。 为了让每一个人都拥有驱动大模型的能力&#xff0c;以微软全球副总裁…

题目 2915: 接水问题

题目描述: 学校里有一个水房&#xff0c;水房里一共装有 m 个龙头可供同学们打开水&#xff0c;每个龙头每秒钟的供水量相等&#xff0c;均为 1。 现在有 n 名同学准备接水&#xff0c;他们的初始接水顺序已经确定。将这些同学按接水顺序从 1 到 n 编号&#xff0c;i号同学的…

练习题(2024/4/9)

1 下一个排列 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如&#xff0c;arr [1,2,3] &#xff0c;以下这些都可以视作 arr 的排列&#xff1a;[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更…

2.Go的基本语法-指针、结构体、Map

1.指针 1.1.常规定义 func test24() {var a int 10var b *intb &afmt.Printf("a 的 值%d\n", a)fmt.Printf("a 的 指针地址%x\n", &a)fmt.Printf("b 的 值%d\n", *b)fmt.Printf("b 的 指针地址%x\n", b)打印var c *string…

常见通信方式之Websocket

官方文档 背景 在没有websocket之前&#xff0c;如果需要不断更新页面的某一部分信息&#xff0c;通常是采用基于http请求的单向轮询。但是轮询的话&#xff0c;一方面&#xff0c;我们又不希望过于频繁的请求服务器&#xff0c;一方面&#xff0c;又希望能够能快的收到最新的…

基于HASM模型的高精度建模matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1HASM模型概述 4.2 HASM模型的数学表述 5.完整程序 1.程序功能描述 本课题主要使用HASM进行高精度建模&#xff0c;主要对HASM模型进行介绍以及在实际中如何进行简化实现的。HASM原始的模…

SQL注入利用学习 - 延时盲注

延时盲注原理 无法利用页面显示结果判断SQL注入是否执行成功&#xff0c;此时可以利用 SQL语句执行的延时 判断SQL是 否执行成功。 只要可以执行延时&#xff0c;那么就可以利用该注入技术。 sql时间类型的盲注本质是利用插入的SQL语句执行造成时间延迟&#xff0c;插入的SQ…

gpt科普1 GPT与搜索引擎的对比

GPT&#xff08;Generative Pre-trained Transformer&#xff09;是一种基于Transformer架构的自然语言处理模型。它通过大规模的无监督学习来预训练模型&#xff0c;在完成这个阶段后&#xff0c;可以用于各种NLP任务&#xff0c;如文本生成、机器翻译、文本分类等。 以下是关…

【图论】Leetcode 207. 课程表【中等】

课程表 你这个学期必须选修 numCourses 门课程&#xff0c;记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出&#xff0c;其中 prerequisites[i] [ai, bi] &#xff0c;表示如果要学习课程 ai 则 必须 先学习课程 bi 。…

git-es6-promisem面试

git 工作区 暂存区 仓库区 git config --global user.name xxx git config --global user.email xxx验证是否配置成功 输入命令&#xff1a; git config --list在 c:/用户/用户名 下有 .gitconfig文件&#xff0c;存放的就是git配置的用户信息 新项目git管理步骤 初始化 g…

【VUE】Vue3+Element Plus动态间距处理

目录 1. 动态间距调整1.1 效果演示1.2 代码演示 2. 固定间距2.1 效果演示2.2 代码演示 其他情况 1. 动态间距调整 1.1 效果演示 并行效果 并列效果 1.2 代码演示 <template><div style"margin-bottom: 15px">direction:<el-radio v-model"d…

【实用工具】使用飞书机器人监控工程日志

1.创建一个飞书群聊&#xff0c;设置-->群机器人-->添加机器人-->自定义机器人-->修改机器人名称-->添加 2.复制webhook地址 3.编写日志请求代码 import logging import requests import json import os from datetime import datetime import time import sub…

19、差分矩阵

差分矩阵 题目描述 输入一个n行m列的整数矩阵&#xff0c;再输入q个操作&#xff0c;每个操作包含五个整数x1, y1, x2, y2, c&#xff0c;其中(x1, y1)和(x2, y2)表示一个子矩阵的左上角坐标和右下角坐标。 每个操作都要将选中的子矩阵中的每个元素的值加上c。 请你将进行完…

LeetCode-45. 跳跃游戏 II【贪心 数组 动态规划】

LeetCode-45. 跳跃游戏 II【贪心 数组 动态规划】 题目描述&#xff1a;解题思路一&#xff1a;Python 贪心解题思路二&#xff1a;贪心优化解题思路三&#xff1a;类似于跳跃游戏一的写法解题思路四&#xff1a;动态规划 题目描述&#xff1a; 给定一个长度为 n 的 0 索引整数…

抖音视频如何下载保存(方法分享)

有时刷抖音视频&#xff0c;看的喜欢的视频想要下载到本地&#xff0c;但是有很多视频无法下载或者下载下来是有水印的&#xff0c;那怎么办呢?   抖音视频下载有两种情况&#xff1a; 一种是可以直接点击分享下载&#xff0c;然后可以直接点击保存到相册。 视频就自动下载…

云平台和云原生

目录 1.0 云平台 1.1.0 私有云、公有云、混合云 1.1.1 私有云 1.1.2 公有云 1.1.3 混合云 1.2 常见云管理平台 1.3 云管理的好处 1.3.1 多云的统一管理 1.3.2 跨云资源调度和编排需要 1.3.3 实现多云治理 1.3.4 多云的统一监控和运维 1.3.5 统一成本分析和优化 1.…